본문 바로가기

programmers5

[Swift][프로그래머스][LV_1] 예산 요구능력 : 오름차순 정렬에 대한 이해 코드설명 : 이 문제에서 핵심 1. 오름차순 정렬 부서별로 필요한 물품을 지원해준다. 배열 d : 부서당 필요한금액 budget : 예산 우리가 구해야하는 것 : 최대 몇 개의 부서에 물품을 지원할 수 있는가 생각해보면 간단하다. 그냥 많은 부서에 지원을 해주고 싶은거면 오름차순해서 작은부서부터 차례대로 지원하다보면 가장 많은 부서에 지원하게된다. 인수로 받은 배열을 따로 오름차순정렬 해주고, 작은것부터 예산범위가 넘어가지않게 더해주면된다. 그렇게하면 최종적으로 최대 부서 개수가 나온다. 후기 : 그냥 기본적인 정렬문제인것같다. 이런게 좀더 꼬이고 꼬이면 DP문제가 될지도.. func solution(_ d:[Int], _ budget:Int) -> Int { va.. 2021. 11. 19.
[Swift][문자열][LV_2][프로그래머스] 영어 끝말잇기 요구능력 : 문자열에 대한 이해 코드설명 : 이 문제에서 핵심 1. 단어 자체가 이전에 나온적이 있는지 확인 2. 바로 이전단어의 끝 문자가 현재단어의 맨 앞문자와 일치하는지 확인 ex) char -> r로 시작해야됨 3. 끝말잇기를 성공한 경우를 확인 변수설명 count = 차례를 계산하기위해 수를 세는 변수 arr = 단어를 arr에 저장하면서 새로운 단어를 저장할 때 그게 앞전에 나온적이 있는지 확인하기 위한 변수 result = 결과를 저장하고 return하기 위함 order = 탈락자가 몇번째 순서인지 세기 위함. 1. 단어 자체가 이전에 나온적이 있는지 확인 contains() 함수를 사용하여 이전에 단어가 나온적이 있는지 확인 하였다. 2. 바로 이전단어의 끝 문자가 현재단어의 맨 앞문자와 .. 2021. 11. 19.
[Swift][문자열][LV2][프로그래머스] 스킬트리 요구능력 : 문자열에 대한 이해 코드설명 : 이 문제의 해답을 보기전에 꿀팁. 이런문제는 사람들마다 문제푸는 스타일이 천차만별일것이라,, 코드해석이 어려울 수 있다. 그럴때는 그냥 혼자서 생각하고 디버깅하면서 푸는게 최고다. 이 문제에서의 핵심을 짚어보자. 1. 문자열을 Character로 분해 2. 배열에서 문자열의 인덱스 활용 3. 선행스킬의 존재여부 변수가 너무 많아서 변수부터.. skillSplit : skill입력을 캐릭터자료형으로 분해해놓은 캐릭터배열 before : 이전에 나온 스킬의 인덱스를 저장한다. isSkill : 스킬트리가 스킬트리로서의 조건들을 만족하는지 안하는지 count : 조건들을 만족하는 스킬트리의 개수 beforeSkill : 이전에 선행으로 배워야하는 스킬 skillTr.. 2021. 11. 18.
[Swift][DFS][LV_2][프로그래머스] 배달 요구능력 : DFS에 대한 이해 코드설명 : 주의: 이 해설은 32번 케이스를 통과하지 못했습니다. DFS로는 도저히 32번을 통과못할것 같지만 풀이가 궁금하신 분들이 계실것같아 올렸습니다. 다음번에 BFS로 풀어보고 따로 글 올리겠습니다. 간선과 가중치가 주어진 문제로 연결그래프를 만들고 그 그래프를 타고가는 방식으로 코드를 짜면된다. 1. 연결그래프 작성 주어진 간선과 가중치를 튜플을 이용해서 연결그래프에 함께 담았다. for i in 0.. k { return } if !visited[i.0]{ visited[i.0] = true count += i.1 if count Int { var visited = Array(repeating: false, count: N + 1) var result = Se.. 2021. 11. 18.