Algorithm236 [Swift][프로그래머스][완전탐색] 모의고사 요구능력 완전탐색, 딕셔너리 문제풀이 문제를 보면 수포자의 명수와 수포자가 문제를 찍는 정답수를 가르쳐준다. 그래서 one, two, three로 반복되지 않는 정답을 적어줬고, dictionary를 활용해서 각자 정답을 얼마나 맞췄는지를 기록해줬다. index가 0부터 시작하니까 각자 개수에 따라서 나머지연산을 해준다면 아무리 answers의 수가 많아져도 계속해서 정답을 맞춰볼 수 있다. 예를들어서 1번 수포자(one)의 경우 [1, 2, 3, 4, 5] 총 5개라서 index는 0 ~ 4이다. 이걸 %5 해주게되면 index가 5일 때는 0이고 6 일 때는 1이된다. 이런식으로 계속해서 정답을 맞춰볼 수 있다. 그리고 이 dictionary의 value값들 중 최대값이 결국 가장 많이 맞힌 수 일 .. 2022. 4. 18. [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][프로그래머스][정렬] 가장 큰 수 요구능력 정렬과 문자열에 대한 이해 문제풀이 Swift의 경우 sort()함수를 제공한다. sort()함수는 Timsort라는 정렬 알고리즘으로 이루어져있는데, Timsort는 insertionSort와 mergeSort가 합쳐진것이라고 한다. swift에서 알고리즘문제를 풀면서 거의 유일(?)하게 빠르고 좋은함수인것같다. 최악의 경우에도 O(nlogn)의 성능을 뽑아낸다. 이 문제는 이미 문제에 풀이법을 적어놨다. 문자열로 처리해서 리턴해라... 그렇다. 정렬할때도 문자열로 처리해서 더 큰 경우의 수를 맨앞에 놓는 내림차순을 하면 되는것이었다. 쉽게 설명하자면 [6, 10, 2]가 있으면 "\(6)" + "\(10)" 과 "\(10)" + "\(6)" 중 크게나오는 경우로 내림차순을 하라는 말이다. 그.. 2022. 4. 13. [Swift][프로그래머스][정렬] K번째수 요구능력 정렬 문제풀이 간단하게 하기 위해서 i와 j 그리고 k를 배열 인덱스에 맞추기위해서 1씩 빼주었다. 그리고 인덱스 슬라이싱을 통해 i번째...j번째 배열을 추출해서 arr에 넣어주었고 arr을 정렬하고 k번째 있는것을 result배열에 넣어주었다. 후기 간단한 정렬문제이다. 코드 func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] { var result = [Int]() for v in 0.. 2022. 4. 13. 이전 1 ··· 8 9 10 11 12 13 14 ··· 59 다음