https://school.programmers.co.kr/learn/courses/30/lessons/42628?language=swift 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 우선순위큐를 구현 할 수 있다면 쉬운 문제. 오름차순과 내림차순 우선순위 큐를 둘 다 구현하고 명령어에 따라 각 큐를 연산 한 뒤, 연산하지 않은 큐를 새로 만들어 할당하는 식으로 문제를 해결했다. import Foundation struct Heap { var elements: [Int] var sortFunction: (Int, Int) -> Bool var isEm..
https://school.programmers.co.kr/learn/courses/30/lessons/86971# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 간단히 요약하면 서로 연결되어 있는 집합끼리의 개수의 차이를 구하는 문제. 보자마나 Union-Find 알고리즘을 이용하면 풀 수 있겠구나 생각이 들었다. 와이어를 하나씩 자른 모든 경우의 수에 각 그룹 송전탑의 수 차이를 완전탐색해서 풀었다. Union-Find 알고리즘을 구현할 수 있다면 막힘없이 풀 수 있는 문제라고 생각 import Foundation func calculateTw..
https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 경우의 수, DFS, 구현 문제. 가장 고민을 많이 했던 것은 우선순위를 적용한 계산을 어떻게 할 것인지 고민을 많이 했다. 내가 푼 방식은 연산자와 숫자를 각각 나눠서 배열에 담고, 우선순위를 for문으로 돌아서 연산자 우선순위가 높은것을 먼저 계산하고 숫자 배열에 이를 적용하고 계산한 숫자는 제거하는 방식으로 구현했다. import Foundation var solutionAnswer: Int..
https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 + 재귀 + 구현 문제. 오랜만에 알고리즘을 푼지라 시간이 많이 걸렸다. 주의할점은 괄호를 변경할 때 문자열을 뒤집는게 아닌 괄호를 뒤집어야 한다. ( 를 )로 뒤집는 것. 문자열과 재귀, 구현을 어느 정도 이해하고 있으면 그리 어려운 문제는 아닌듯 하다. import Foundation func checkIsBalance(_ p: String) -> Bool { let strArr = A..
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..