본문 바로가기

고득점kit11

[Swift][프로그래머스][그리디] 체육복 요구능력 그리디 문제풀이 이 문제는 전체 학생수가 30명이하라고 했기 때문에 뭐 어떻게 풀어도 풀기만하면 시간초과는 안나온다고 생각한다. 그리고 여분을 가지고 있는 학생과 도난당한 학생들이 있는데, 여분을 가지고있는 학생들이 자기 앞뒤번호로 나눠준다는 문제이다. 이 문제에서 설명이 필요한 부분은 딱 2개인것같다.(내가 놓친 예외) 1) 우리는 입력받을 때 무조건적으로 오름차순으로 준다는 말이 없었다. 하지만 문제를 풀 때 오름차순으로 받아야 편하게 풀린다.. 그리고 보여지는 테케에서는 오름차순으로만 주기때문에 사람들이 놓치기 쉬운 예외인것같다. 그래서 lostTemp와 reserved는 각각 lost와 reserve를 정렬한것이다. 참고) (테케 18, 20번)통과 2) 문제의 조건 중 "도난당한학생은 .. 2022. 4. 20.
[Swift][프로그래머스][해시] 베스트앨범 요구능력 딕셔너리의 활용 및 정렬 문제풀이 아래는 문제의 조건이다. 1. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 2. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 3. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 1번을 처리하기 위해서 dict를 생성하고 ["classic": 1450]과 같이 저장하였다. 그리고 정렬해서 rankDict에 ["classic": 1]과 같이 저장하였다. 다음으로 2번을 처리하기 위해서 uniqueDict를 생성하고 [0 : ("classic", 500)]과 같이 저장하였다. 그리고 rankDict를 활용해서 장르별로 정렬을 해주었다. 이렇게 장르별로 정렬된 것은 sortedUniqueDict에 저장해주었고, sor.. 2022. 4. 19.
[Swift][프로그래머스][완전 탐색] 소수 찾기 요구능력 에라토스테네스의 체, 순열 문제풀이 문제에서 7자리까지 나올 수 있다고 언급했고, 0 ~ 9까지의 숫자가 있을 수 있으니 최악의 경우 9999999가 나올 수 있다. 따라서 소수판별 알고리즘인 에라토스테네스의 체를 이용해서 9999999까지의 소수를 구했다. 그리고 이 문제는 전형적인 순열관련 문제인데, 찢어진 수를 붙이기위해서 String형태로 joined()를 해줬다. 그리고 Int()!로 강제캐스팅해주면서 011과 같은 예외를 처리해준다. 그리고 소수이면 setNum에 저장을 해주는데, Set을 사용한 이유는 중복된 수까지 세지 않기 위해서이다. 후기 무난한 순열문제인데 에라토스테네스를 그냥 크게잡아놔서 시간이 오래걸린다 코드 func solution(_ numbers:String) -> .. 2022. 4. 18.
[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.