본문 바로가기

Lv210

[Swift][프로그래머스][브루트포스] 괄호 변환 요구능력 재귀함수에 대한 이해 문제풀이 이 문제는 쪼개서 이해하면 이해가 잘되고 풀리게된다. 문제에서 주어진 절차를 무시할경우 삽질하게 되니 주의.. 1) 균형잡힌 괄호문자열 u와 v로 분류 균형잡힌 괄호문자열을 u와 v로 분류해준다. "("괄호의 개수는 leftCount, ")"괄호의 개수는 rightCount로 계산해주었다. leftCount와 rightCount가 같아지면 그건 균형잡힌 괄호문자열이 된다. func seperate(_ p: String) -> (String, String){ var leftCount = 0 var rightCount = 0 let pArr = Array(p) var u = "" var v = "" for i in 0.. String{ var result = "" if.. 2022. 5. 3.
[Swift][프로그래머스][정렬] H-Index 요구능력 정렬 활용 문제풀이 나는 처음에 citations에 있는 인용수가 h-Index에 들어가는건줄 알고 꽤나 오랜시간 삽질을 했다. 문제를 잘 이해하면 h-Index는 최대 citations의 개수만큼 나온다. 문제에서 논문 n편 중 h번이상 인용된 논문이 h편 이상이고, 나머지가 h번 이하 인용되었다면 h의 최대값이 h-Index라고한다. 바로 예제로 설명을 해보자. [3, 0, 6, 1, 5]가 있다. h가 1인경우를 살펴보자. H-Index가 1이면 논문 5편중 1번이상 인용된 논문이 1편 이상이고, 나머지가 1번 이하 인용되는가? 1번이상 인용된 논문 [3, 6, 1, 5]이 있고 나머지[0]은 1번이하 이므로 인용된다. h가 2인경우를 살펴보자. H-Index가 2이면 논문 5편중 2번이상.. 2022. 4. 13.
[Swift][Programmers][Queue] 프린터 요구능력 큐에대한 이해 문제풀이 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 위의 문제의 조건을 보면 맨앞에서 꺼내서 맨뒤로 넣는다. 전형적인 큐를 이야기 하고있다. 나의 경우 귀찮아서 문제를 지저분하게 풀었지만 튜플을 이용해서 큐를 사용하면 더욱 깔끔하게 문제를 해결 할 수 있다. ABCD를 넣어서 푸는사람도 있겠지만 이 역시 귀찮아서 identy배열에 0부터 queue의 개수만큼 넣어줘서 고유한 숫자로 적용해줬다. priorities가 [2, 1, 3, 2]라면 identy는 ["0", "1", "2", "3"]이렇게.. 2022. 4. 12.
[Swift][프로그래머스][DFS] 타겟 넘버 요구능력 : 깊이우선탐색 코드설명 : 일반적인 DFS문제로 노드를 그려가면서 풀면 이해가 쉽다. 후기 : 그냥 DFS로 풀면되는걸.. 계속 순열로 풀려고 하다가 시간이 조금 걸렸다.. 이걸 대체 왜 순열로 접근했을까.. func solution(_ numbers:[Int], _ target:Int) -> Int { var result = 0 func dfs(_ depth: Int, _ sum: Int){ if depth == numbers.count{ if target == sum { result += 1 } return } dfs(depth + 1, sum + numbers[depth]) dfs(depth + 1, sum - numbers[depth]) } dfs(0, 0) return result } 2022. 3. 14.