본문 바로가기

Swift224

[Swift][프로그래머스][해시] 메뉴 리뉴얼 요구능력 조합 + 해시 문제풀이 DFS를 활용해서 조합을 사용하였고, 문제에서도 조합이라고 했기 때문에 음식의 순서는 상관없다. 그래서 sorTemp변수를 사용해서 얻어오는 조합마다 정렬해서 받았다. 이 부분이 이 문제의 변별력인것 같다. ex) XY, YX는 같은 음식조합이다. 그리고 사실 "만약 가장 많이 함께 주문된 메뉴 구성이 여러 개라면, 모두 배열에 담아 return 하면 됩니다." 이 부분을 안읽고 문제를 풀다가 가 예제 2번에 AB는 왜 안되지라는 생각을 계속했는데, 2가지 메뉴구성 중에서도 가장 많이 함께 주문된 메뉴구성을 골라야했다. 가장 많이 함께 주문된 메뉴구성을 안고르고 그냥 course의 개수에 맞고 2개이상인 메뉴구성을 계속 고르다보니 문제가 안풀렸던것이다. 후기 문제의 조건을.. 2022. 4. 27.
[Swift][프로그래머스][그리디] 추석 트래픽 요구능력 그리디 문제풀이 임의시간부터 1초간 처리하는 요청의 최대 개수를 구해야한다. 오름차순 정렬까지 되어있기 때문에 우리가 원하는 시간에서부터 1초만 탐색하면 되니까 그리디로 풀게되었다. 1) 처리시간은 시작시간과 끝시간을 포함한다. 우리가 구해야할 것은 시작시간과 끝시간으로 정해졌다. 처음에 주어지는 시간이 끝시간이다. 시간을 비교해야 될 때는 가장 작은 단위에 맞춰서 비교하는게 가장좋다. 모두 우선 초단위로 바꾸고 더한다음 1000을 곱해서 밀리초를 만들어주고 밀리초를 더해주면 시간양식이 우선 완성된다. 끝시간을 저장하는 배열 endTime에 추가해준다. 그리고 시작시간을 구하려면 지속시간을 빼주면 된다. 하지만, 그냥 빼주면 안되고 문제에서 아래와 같이 되어있으니 1을 더해줘야한다. 2) 끝시간.. 2022. 4. 26.
[Swift][구현] 백준 2290번 (LCD Test) 요구능력 구현 문제풀이 1) 우선 arr배열에 s가 1일때 만들 수 있는 숫자의 형태를 모두 저장해줬다. 3차원 배열로 저장했고 " "의 경우에는 0으로 저장하고, "-"나 "|"의 경우에는 1로 저장하였다. 2) 규칙찾기 2로 나누어 떨어지는 곳은 "-"이다. 문제를 보면 알겠지만, 2로 나누어떨어지는 곳은 "-"이다. 그리고 2로 나누어 떨어지는 곳은 양쪽 끝이 " "이고, "-"문자가 s개만큼 생긴다. 그래서 문제에서 s + 2라고 한것이다. 2로 나누어 떨어지지 않는 곳은 "|"이다. 양쪽끝이 "|"이고, " "공백이 s개만큼 생긴다. 2로 나누어 떨어지는곳과 다른점은 2로 나누어 떨어지지 않는곳은 세로로 s줄만큼 더 생긴다는 것이다. 이게, 말로설명하고 그림으로 설명하는것보다 직접 코드를 쳐보면.. 2022. 4. 26.
[Swift][시뮬레이션과 구현] 백준 15685번 (드래곤 커브) 요구능력 구현 문제풀이 엄청 잘 정리해놔주신분의 velog이다. 나도 저분의 게시글을 보고 공부했다. . . 후기 방향하나하나 생각못하고 한번에 돌리다가 시간을 낭비했다.. 규칙은 못찾았지만, 구조설계는 어느정도 맞게했다. 코드 var n = Int(String(readLine()!))!//드래곤커브개수 var arr = [[Int]]() for _ in 0.. 100 || j + 1 > 100{ continue } if visited[i][j] && visited[i + 1][j] && visited[i][j + 1] && visited[i + 1][j + 1]{ result += 1 } } } } print(result) 2022. 4. 25.