https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 + 재귀 + 구현 문제. 오랜만에 알고리즘을 푼지라 시간이 많이 걸렸다. 주의할점은 괄호를 변경할 때 문자열을 뒤집는게 아닌 괄호를 뒤집어야 한다. ( 를 )로 뒤집는 것. 문자열과 재귀, 구현을 어느 정도 이해하고 있으면 그리 어려운 문제는 아닌듯 하다. import Foundation func checkIsBalance(_ p: String) -> Bool { let strArr = A..
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://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 구현 + 시뮬레이션 문제 같은 모양의 블록이 2 * 2 이상 짝수로 붙어 있을 시 그 블록들을 지우고, 위에 있는 블록이 아래로 내려온다. 풀이 방식: 보드를 가로 n-1, 세로 n-1을 반복해서 탐색한다. 탐색하는 블록의 x+1, y+1, (x+1, y+1)이 같은 모양인지 체크하고 모두 같은 모양일 시 removeLocation에 해당 블록의 위치를 저장한다. 탐색을 모두 마쳤다면 remove..
https://school.programmers.co.kr/learn/courses/30/lessons/17677# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 합집합, 교집합만 올바르게 구현 할 수 있다면 쉬운 문제. 집합에서 동일한 원소값 여럿 있다면, 교집합의 경우 제일 적은 집합의 수만큼 넣고, 합집합의 경우 가장 많은 수만큼 넣는다. 한쪽에만 동일한 여러개의 원소가 있는 경우에도, 이때 상대에게 0개가 있는것으로 치니 한쪽의 수만큼 넣어야 한다. 해설을 보면 병합정렬을 응용하면 쉽게 구현할 수 있다던데, 한번 알아봐야겠다. 소요시간: 50분 i..
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(..