세상을 더 편리하게
article thumbnail
[프로그래머스 / Swift] 캐시

1. 문제 접근 머리 쓰는게 오히려 독일 수 있다. 2. 문제 풀이 3. 문제 후기 문제 링크

article thumbnail
[프로그래머스 / Swift] 불량 사용자

[문제 링크] 문제 접근 문제 풀이 문제 후기

article thumbnail
[프로그래머스 / Swift] 카드 짝 맞추기

문제 접근 dfs로 문제를 풀고 싶었는데 너무 많은 호출을 하게 되어서 dfs 대신에 bfs로 접근하였다. 하지만 bfs로도 문제가 풀기는 힘들었다. 문제를 하나 하나 뜯어보자. 문제 풀이 문제를 풀기 위해서 접근해야 할 것은 몇 번 카드부터 시작 할 것인가? ( 카드를 맞추는 순서는 어떻게 할 것인가? ) A -> B로 접근하기 위해서 가장 가까운 루트는 어떻게 구할 것인가? 이다. 하나씩 뜯어보자. 몇 번 카드부터 시작할 것인가? 1번부터 6번 카드까지 어떤 순서대로 풀어낼 것인가에 대해서는 순열을 통해서 문제를 풀어야한다. func permutate(_ elements: [Int]) -> [[Int]] { var result = [[Int]]() var visited = [Bool](repeatin..

article thumbnail
[프로그래머스 / Swift] 사라지는 발판

문제 접근 & 문제 풀이 사실 완전 탐색이라는 것은 느낌이 왔다. 왜냐하면 최대가 5*5 짜리 발판이기 때문이다. 이러면 시간초과가 나는 일을 없을 것이라 생각이 들었다. 하지만 50% 이상 점수 맞기가 힘들었다. 결국은 못 풀고 해설지를 봤다. 음... 문제를 해석하고 그 해석을 코드를 얼마나 잘 구현하냐가 이 문제의 관건인것 같다. 그래서 이번에는 문제 풀이와 접근을 같이하려고 한다. 전체 코드 더보기 import Foundation func solution(_ board:[[Int]], _ aloc:[Int], _ bloc:[Int]) -> Int { let maxY = board.count - 1 let maxX = board[0].count - 1 let dy = [1, -1, 0, 0] let..