· 아이디어💡 우선 BFS를 활용하여 문제를 풀 예정이다. 배열을 사용하고, 델타 탐색을 이용해서 행렬의 각 요소들을 탐색할 예정이고, 값이 1인 시작점으로부터 계속 +1을 해서 배열의 최댓값에서 -1을 하여 print 할 것이다. · 코드 😵😵💫 풀이 1. (시간초과) func boj7576() { // 배열 크기 입력 let size = readLine()!.split(separator: " ").map { Int($0)! } let col = size[0] let row = size[1] // 배열 세팅 var arr: [[Int]] = [] var queue: [(Int, Int)] = [] for _ in 0..
· 아이디어💡 이 문제에 접근 방법은 두 가지가 있다. 하나는 큐를 구현해서 푸는 방법과 큐를 구현하지 않고 푸는 방법이 있다. 결론적으론 두 방법 다 같은 원리로 접근해서 푸는 방법이긴 하다. 포인터 큐를 사용할 예정인데, dequeue를 하면 front라는 제일 처음 인덱스를 +1을 계속해줌으로 써 dequeue를 한 배열은 배제하고 그 이후 인덱스부터 확인하는 방법이다. 큐를 구현하지 않고 푸는 방법도 같은 원리를 사용하는 방법이다. · 코드 😵😵💫 1. 큐를 구현해서 푸는 방법 struct QueuePointer { private var elements: [T] = [] private var front = 0 var isEmpty: Bool { elements.count < front + 1 }..
· 아이디어💡 이 문제는 스택으로 풀 수 있는 문제이다. 그러나 이미 많은 라이브러리가 존재하는 C++과 파이썬과는 달리 Swift는 Stack을 사용하려면 40줄 가까운 코드를 따로 써야 한다. 그래서 필요하다면 Stack을 구현하겠지만 구현할 수 없다면 다른 방법으로 푸는 것도 하나의 방법이다. 이 문제의 아이디어는 입력받은 문자열의 제일 왼쪽부터 "("인지 ")" 인지 확인해보면서 count를 하고, count 값이 0이 되면 true를 반환, 0이 아니거나 한 번이라도 0 미만으로 내려가면 false를 반환해서 "YES"인지 "NO"인지 프린트를 하면 된다. · 코드 😵😵💫 func sol9012() { let total = Int(readLine()!)! var answer: [Bool] = ..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.