https://www.acmicpc.net/problem/1713 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대 www.acmicpc.net Dictionary, Tuple를 이용하여 구현. 제거할 후보를 구하는 로직은 처음에는 우선순위 큐를 이용할까 싶었지만, 정렬을 이용. 처음 풀었을때는 정렬을 사용하지 않고 각 Case 별로 구현했지만 이런식으로 하는게 좀 더 쉬운듯하다. import Foundation let n = Int(readLine()!)! let recommendNum = Int(readLine()!)! let..
https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 순서와 상관없이 들어가 있는 숫자가 동일하지 않는 수열을 출력하는 문제. N과 M 문제를 풀었다면 쉽게 풀만한 문제 import Foundation while true { var inputArr = readLine()!.split(separator: " ").map{ Int($0)! } if inputArr[0] == 0 { break } var input = inputArr input..
https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 문제 요약: 1~9까지의 서로 다른 숫자로 이루어진 3자리 숫자가 목표 수 입력으로는 3자리 숫자와 스트라이크, 볼의 개수가 주어짐 입력된 값을 토대로 정답이 될 수 있는 숫자의 개수를 묻는 문제 풀이 과정: 서로 다른 숫자로 이루어진 수만이 들어가므로 순열을 이용해서 서로 다른 숫자로 이루어진 3자리 가능한 숫자 배열을 구함. 입력을 받을때마다 가능한 숫자 배열을 반복문으로 돌면서 입력된 수와 ..
https://www.acmicpc.net/problem/17503 17503번: 맥주 축제 첫 번째 줄에 축제가 열리는 기간 N (1 ≤ N ≤ 200,000) 과, 채워야 하는 선호도의 합 M (1 ≤ M Bool var isEmpty: Bool { return elements.isEmpty } var peek: T? { if self.isEmpty { return nil } return self.elements[0] } var count: Int { return elements.count } init(elements: [T], sortFunction: @escaping (T, T) -> Bool) { self.elements = elements self.sortFunction = sortFuncti..
https://www.acmicpc.net/problem/2116 2116번: 주사위 쌓기 첫줄에는 주사위의 개수가 입력된다. 그 다음 줄부터는 한 줄에 하나씩 주사위의 종류가 1번 주사위부터 주사위 번호 순서대로 입력된다. 주사위의 종류는 각 면에 적혀진 숫자가 그림1에 있는 www.acmicpc.net 첫번째 주사위에 따라서 그 위에 쌓여 있는 주사위의 옆면이 결정된다. 주사위의 도면이 주어졌으므로, 첫번째 주사위의 아랫면이 1부터 6까지일때 각 경우를 따져서, 그 위에 주사위의 옆면 시뮬레이션 했다. 주사위 도면에다가, 각 주사위의 윗면과 아랫면을 제거해서 옆면을 구하는 방식으로 풀었다. import Foundation let n = Int(readLine()!)! var diceArr: [[Int..
https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 전형적인 구현 문제. 처음에는 head, tail 좌표값을 가지고서 2차원 배열에 표시하려고 했으나, 꼬리 부분을 지울때, 다름 꼬리를 지정하는 부분이 구현하기 까다로워서 디큐를 이용해 구현했다. 이동할 장소에 사과가 없다면 디큐의 맨 앞부분을 제거하고, 그 좌표값을 지도에 반영한다. 그 외에는 모두 이동할 장소의 좌표값을 넣어주는 식으로 구현했다. import Foundation let n = Int(..