본문 바로가기

프로그래머스33

[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][프로그래머스][완전탐색] 행렬 테두리 회전하기 요구능력 완전탐색 문제풀이 테두리만 회전시키면서 가장 작은값을 result에 저장해두고 회전을 마치면 answer에 하나씩 저장하였다. 후기 그냥 구현문제 코드 func solution(_ rows:Int, _ columns:Int, _ queries:[[Int]]) -> [Int] { var arr = [[Int]]() var count = 1 var answer = [Int]() for i in 0.. 2022. 4. 25.
[Swift][프로그래머스][math] 멀쩡한 사각형 요구능력 최대공약수(유클리드 호제법) 문제풀이 아래는 프로그래머스의 예제그림이다. 이렇게 그림만보면 어떻게 풀어야할지 머릿속이 깜깜하다. 똑같이 생긴게 4개가 보인다. w = 8, h = 12라고 했는데, 8,12랑 4가 연관이 있을까.. 생각해보면 최대공약수가 떠오르긴한다. 뭔가 확실한 해답은 아니니까 우선 넣어두고, 좌표가 (2,3), (4,6), (6,9), (8,12) 이렇게된다. 규칙성이 있는거같은데, 한 부분만 똑 떼서 보면, w = 2, h= 3일 때 쓸 수 있는 사각형은 2개 쓸 수 없는 사각형은 4개이다. (0, 0)에서 (2, 3)까지 가는데 가로로 2번가고 세로로 3번움직이면된다. 하지만, 가로로 2번가고 세로로 3번움직이면 사각형이 한번 겹친다. 그래서 X + Y - 1이라는 공식이.. 2022. 4. 25.