ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ฉ๐ป๐ป ๋ฌธ์
1697๋ฒ: ์จ๋ฐ๊ผญ์ง
์๋น์ด๋ ๋์๊ณผ ์จ๋ฐ๊ผญ์ง์ ํ๊ณ ์๋ค. ์๋น์ด๋ ํ์ฌ ์ N(0 ≤ N ≤ 100,000)์ ์๊ณ , ๋์์ ์ K(0 ≤ K ≤ 100,000)์ ์๋ค. ์๋น์ด๋ ๊ฑท๊ฑฐ๋ ์๊ฐ์ด๋์ ํ ์ ์๋ค. ๋ง์ฝ, ์๋น์ด์ ์์น๊ฐ X์ผ
www.acmicpc.net
โ๐ป ํ์ด
๐จ Go
// https://www.acmicpc.net/problem/1697
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var n, k int
fmt.Fscanln(reader, &n, &k)
var visited = make([]int, 100001)
bfs(visited, n, k)
fmt.Fprintln(writer, visited[k])
}
func bfs(visited []int, start, end int) {
var queue = []int{start}
for len(queue) > 0 {
curPos := queue[0]
if curPos == end {
break
}
queue = queue[1:]
if curPos-1 >= 0 && visited[curPos-1] == 0 {
queue = append(queue, curPos-1)
visited[curPos-1] += (visited[curPos] + 1)
}
if curPos+1 <= 100000 && visited[curPos+1] == 0 {
queue = append(queue, curPos+1)
visited[curPos+1] += (visited[curPos] + 1)
}
if curPos*2 <= 100000 && visited[curPos*2] == 0 {
queue = append(queue, curPos*2)
visited[curPos*2] += (visited[curPos] + 1)
}
}
}
๐จ Python3
# https://www.acmicpc.net/problem/1697
import sys
def bfs(visited, start, end):
queue = [start]
while len(queue) > 0:
cur_pos = queue.pop(0)
if cur_pos == end:
break
if cur_pos-1 >= 0 and visited[cur_pos-1] == 0:
queue.append(cur_pos-1)
visited[cur_pos-1] += (visited[cur_pos]+1)
if cur_pos+1 <= 100000 and visited[cur_pos+1] == 0:
queue.append(cur_pos+1)
visited[cur_pos+1] += (visited[cur_pos]+1)
if cur_pos*2 <= 100000 and visited[cur_pos*2] == 0:
queue.append(cur_pos*2)
visited[cur_pos*2] += (visited[cur_pos]+1)
if __name__ == "__main__":
n, k = list(map(int, sys.stdin.readline().split()))
visited = [0 for _ in range(100001)]
bfs(visited, n, k)
print(visited[k])
728x90
'dev > algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ / 2294๋ฒ / ๋์ 2 [Go][Python3] (0) | 2021.03.19 |
---|---|
BOJ / 11052๋ฒ / ์นด๋ ๊ตฌ๋งคํ๊ธฐ [Go][Python3] (0) | 2021.03.18 |
BOJ / 7576๋ฒ / ํ ๋งํ [Go][Python3] (0) | 2021.03.16 |
BOJ / 11140๋ฒ / LOL [Go][Python3] (0) | 2021.03.15 |
BOJ / 5883๋ฒ / ์์ดํฐ 9S [Go][Python3] (0) | 2021.03.14 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
TAG
- BOJ
- Algorithm
- ํ
- ๋ธ๋ฃจํธํฌ์ค
- ์๊ณ ๋ฆฌ์ฆ
- Golang
- AWS
- dfs
- Macbook pro 2012 mid 13
- MongoDB
- ์ด๋ถํ์
- python3
- ์๋ฐ
- ํด์๋งต
- ballet
- java
- dp
- baekjoon
- BFS
- ๋งฅ๋ถ ์ ๊ทธ๋ ์ด๋
- ์๊ฐ๊ต์ฒด
- ์คํ
- ๋ฐ๋
- ํ๋ก์ด๋์์ฌ
- ๋งฅ๋ถ
- go
- ๋งฅ๋ถํ๋ก
- ๋ถํ ์ ๋ณต
- ๋ชฝ๊ณ ๋๋น
- ๋ฐฑ์ค
- Total
- Today
- Yesterday