728x90

์ฝ”๋”ฉ 20

๋ฐฑ์ค€ ์ด๋ถ„ํƒ์ƒ‰ ๋ฌธ์ œ๋“ค (1072 ๊ฒŒ์ž„, 1654 ๋žœ์„ ์ž๋ฅด๊ธฐ, 1920 ์ˆ˜์ฐพ๊ธฐ, 2512 ์˜ˆ์‚ฐ)

https://www.acmicpc.net/problem/1072 1072๋ฒˆ: ๊ฒŒ์ž„ ๊น€ํ˜•ํƒ์€ ์ง€๊ธˆ ๋ชฐ๋ž˜ Spider Solitaire(์ŠคํŒŒ์ด๋” ์นด๋“œ๋†€์ด)๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค. ํ˜•ํƒ์ด๋Š” ์ด ๊ฒŒ์ž„์„ ์ด๊ธธ ๋•Œ๋„ ์žˆ์—ˆ์ง€๋งŒ, ์งˆ ๋•Œ๋„ ์žˆ์—ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€์˜ ์‹œ์„ ์ด ๋Š๊ปด์ง„ ํ˜•ํƒ์ด๋Š” ๊ฒŒ์ž„์„ ์ค‘๋‹จํ•˜๊ณ  ์ฝ”๋”ฉ์„ ํ•˜๊ธฐ ์‹œ www.acmicpc.net import sys input = sys.stdin.readline x, y = map(int, input().split()) z = int(100 * y / x) if z >= 99: print(-1) else: ans = 0 start = 0 end = 1000000000 while(start

1๋กœ๋งŒ๋“ค๊ธฐ (๋ฐฑ์ค€1463)

https://www.acmicpc.net/problem/1463 1463๋ฒˆ: 1๋กœ ๋งŒ๋“ค๊ธฐ ์ฒซ์งธ ์ค„์— 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 106๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net Dnamic Programming(๋™์ ๊ณ„ํš๋ฒ•)์€ ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ํ†ตํ•ด ์ค‘๋ณต๊ณ„์‚ฐ๊ฐ’์„ ์ €์žฅํ•ด ํšจ์œจ์„ ๋†’์—ฌ์ค€๋‹ค. 1) Python ์ด์šฉ # DP --> ๋ฉ”๋ชจ์ด์ œ์ด์…˜: ์ค‘๋ณต๊ณ„์‚ฐ๊ฐ’์„ ์ค„์—ฌ ํšจ์œจ ๋†’์—ฌ์คŒ n = int(input()) d = [0] * (n + 1) # d์— ๊ณ„์‚ฐ๊ฐ’ ์ €์žฅ # d[0] = 0, d[1] = 0 for i in range(2, n + 1): d[i] = d[i - 1] + 1 if i % 3 == 0: d[i] = min(d[i], d[i // 3] + 1) if i % 2 == 0: d[i] = ..

์ˆœ์—ด ์‚ฌ์ดํด (๋ฐฑ์ค€ 10451)

https://www.acmicpc.net/problem/10451 10451๋ฒˆ: ์ˆœ์—ด ์‚ฌ์ดํด 1๋ถ€ํ„ฐ N๊นŒ์ง€ ์ •์ˆ˜ N๊ฐœ๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆœ์—ด์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 8๊ฐœ์˜ ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆœ์—ด (3, 2, 7, 8, 1, 4, 5, 6)์„ ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ํ‘œํ˜„ํ•˜๋ฉด \(\begin{pmatrix} 1 & 2 &3&4&5&6&7&8 \\ 3 www.acmicpc.net ์ฒ˜์Œ์— ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค์–ด์„œ ์žฌ๊ท€๋ฅผ ํ–ˆ๋Š”๋ฐ ์‹œ๊ฐ„ ์ œํ•œ์œผ๋กœ ์‹คํŒจ! ์‹คํŒจํ•œ ์ฝ”๋“œ import sys sys.setrecursionlimit(1000000) input = sys.stdin.readline t = int(input()) def dfs(v): visited[v] = 1 for i in range(n + 1): if vi..

์—ฐ๊ฒฐ์š”์†Œ์˜๊ฐœ์ˆ˜ (๋ฐฑ์ค€ 11724)

์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ ๋ฌธ์ œ ๋ฐฉํ–ฅ ์—†๋Š” ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์—ฐ๊ฒฐ ์š”์†Œ (Connected Component)์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N๊ณผ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ๊ฐ„์„ ์˜ ์–‘ ๋์  u์™€ v๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ u, v ≤ N, u ≠ v) ๊ฐ™์€ ๊ฐ„์„ ์€ ํ•œ ๋ฒˆ๋งŒ ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ 1 6 5 1 2 2 5 5 1 3 4 4 6 ์˜ˆ์ œ ์ถœ๋ ฅ 1 2 https://www.acmicpc.net/problem/11724 11724๋ฒˆ: ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N๊ณผ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 1,000,..

์ด๋ถ„ ๊ทธ๋ž˜ํ”„ (๋ฐฑ์ค€ 1707)

์ด๋ถ„๊ทธ๋ž˜ํ”„ ๋ชจ๋“  ๊ผญ์ง“์ ์„ ๋นจ๊ฐ•๊ณผ ํŒŒ๋ž‘์œผ๋กœ ์ƒ‰์น ํ•˜๋˜, ๋ชจ๋“  ๋ณ€์ด ๋นจ๊ฐ•๊ณผ ํŒŒ๋ž‘ ๊ผญ์ง“์ ์„ ํฌํ•จํ•˜๋„๋ก ์ƒ‰์น ํ•  ์ˆ˜ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„ ์ด๋ถ„ ๊ทธ๋ž˜ํ”„์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS), ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS)์„ ์ด์šฉ → ์„œ๋กœ ์ธ์ ‘ํ•œ ์ •์ ์ด ๊ฐ™์€ ์ƒ‰์ด๋ฉด ์ด๋ถ„ ๊ทธ๋ž˜ํ”„ X 1. BFS, DFS๋กœ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์ •์ ์„ ๋ฐฉ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ๋‘ ๊ฐ€์ง€ ์ƒ‰ ์ค‘ ํ•˜๋‚˜๋ฅผ ์น ํ•œ๋‹ค. 2. ๋‹ค์Œ ์ •์ ์„ ๋ฐฉ๋ฌธํ•˜๋ฉด์„œ ์ž์‹ ๊ณผ ์ธ์ ‘ํ•œ ์ •์ ์€ ์ž์‹ ๊ณผ ๋‹ค๋ฅธ ์ƒ‰์œผ๋กœ ์น ํ•œ๋‹ค. 3. ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•  ๋•Œ ์ž์‹ ๊ณผ ์ธ์ ‘ํ•œ ์ •์ ์˜ ์ƒ‰์ด ์ž์‹ ๊ณผ ๋™์ผํ•˜๋ฉด ์ด๋ถ„ ๊ทธ๋ž˜ํ”„๊ฐ€ ์•„๋‹ˆ๋‹ค. 4. BFS์˜ ๊ฒฝ์šฐ ์ •์ ์„ ๋ฐฉ๋ฌธํ•˜๋‹ค๊ฐ€ ๋งŒ์•ฝ ๊ฐ™์€ ๋ ˆ๋ฒจ์—์„œ ์ •์ ์„ ๋‹ค๋ฅธ ์ƒ‰์œผ๋กœ ์น ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋ฌด์กฐ๊ฑด ์ด๋ถ„ ๊ทธ๋ž˜ํ”„๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋ชจ๋“  ์ •์ ์„ ๋‹ค ๋ฐฉ๋ฌธํ–ˆ๋Š”๋ฐ ์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๊ฐ€ ์—†๋‹ค๋ฉด ์ด๋ถ„ ๊ทธ๋ž˜ํ”„์ด๋‹ค. โ€ป ์ด..

[Java] ์ž๋ฐ” ๋ฐฐ์—ด, length, for-each๋ฌธ, 2์ฐจ์› ๋ฐฐ์—ด, ๋ฉ”์†Œ๋“œ์˜ ๋ฐฐ์—ด ๋ฆฌํ„ด

๋ฐฐ์—ด ์„ ์–ธ๊ณผ ์ƒ์„ฑ ๋ฐ ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ• int intArray []; // ๋ฐฐ์—ด์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜ intArray ์„ ์–ธ ๋ฐฉ๋ฒ• 1 int[] intArray; // ๋ฐฐ์—ด์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜ intArray ์„ ์–ธ ๋ฐฉ๋ฒ• 2 intArray = new int [5]; // ์›์†Œ ๊ฐœ์ˆ˜๊ฐ€ 5์ธ int ํƒ€์ž…์˜ ๋ฐฐ์—ด ์ƒ์„ฑ ๋ฐฉ๋ฒ• 1 int intArray[] = new int[5]; // ์›์†Œ ๊ฐœ์ˆ˜๊ฐ€ 5์ธ int ํƒ€์ž…์˜ ๋ฐฐ์—ด ์ƒ์„ฑ ๋ฐฉ๋ฒ• 2 int intArray[] = {4, 3, 2, 1, 0}; // 5๊ฐœ์˜ ์ •์ˆ˜ ๋ฐฐ์—ด ์ƒ์„ฑ ๋ฐ ๊ฐ’ ์ดˆ๊ธฐํ™” ๋ ˆํผ๋Ÿฐ์Šค ์น˜ํ™˜๊ณผ ๋ฐฐ์—ด ๊ณต์œ  ๋ ˆํผ๋Ÿฐ์Šค ์น˜ํ™˜์œผ๋กœ ๋‘ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด ๊ณต์œ  int intArray[] = new int[5]; int myArray[] = intArray; // ..

[๊ทธ๋ž˜ํ”„] ์œ„์ƒ ์ •๋ ฌ

๋ณต์Šต ๊ทธ๋ž˜ํ”„: ๋…ธ๋“œ์™€ ๋…ธ๋“œ ์‚ฌ์ด์— ์—ฐ๊ฒฐ๋œ ๊ฐ„์„  ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ์ฒด๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค --> ๊ฐ€์žฅ ๋จผ์ € ๊ทธ๋ž˜ํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋– ์˜ฌ๋ ค์•ผํ•จ. [๊ทธ๋ž˜ํ”„์™€ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ ๋น„๊ต] ๊ทธ๋ž˜ํ”„ ํŠธ๋ฆฌ ๋ฐฉํ–ฅ์„ฑ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ or ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ ์ˆœํ™˜์„ฑ ์ˆœํ™˜ ๋ฐ ๋น„์ˆœํ™˜ ๋น„์ˆœํ™˜ ๋ฃจํŠธ ๋…ธ๋“œ ์กด์žฌ ์—ฌ๋ถ€ ๋ฃจํŠธ ๋…ธํŠธ X ๋ฃจํŠธ ๋…ธ๋“œ ์กด์žฌ ๋…ธ๋“œ ๊ฐ„ ๊ด€๊ณ„์„ฑ ๋ถ€๋ชจ์™€ ์ž์‹ ๊ด€๊ณ„ ์—†์Œ ๋ถ€๋ชจ์™€ ์ž์‹ ๊ด€๊ณ„ ๋ชจ๋ธ์˜ ์ข…๋ฅ˜ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ ๊ณ„์ธต ๋ชจ๋ธ ๊ทธ๋ž˜ํ”„์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• 1. ์ธ์ ‘ ํ–‰๋ ฌ(Adjacency Matrix): 2์ฐจ์› ๋ฐฐ์—ด ์‚ฌ์šฉ 2. ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ(Adjacency List): ๋ฆฌ์ŠคํŠธ ์‚ฌ์šฉ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ V, ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜๊ฐ€ E์ธ ๊ฒฝ์šฐ ์ธ์ ‘ ํ–‰๋ ฌ๊ณผ ์ธ์ ‘๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„ ๋น„๊ต ์ธ์ ‘ํ–‰๋ ฌ ์ด์šฉ ์ธ์ ‘๋ฆฌ์ŠคํŠธ ์ด์šฉ ๊ฐ„์„  ์ •๋ณด ์ €์žฅ O(V^2)..

[Python] set ์ž๋ฃŒํ˜• ์ด์šฉํ•ด ๋ฆฌ์ŠคํŠธ ์ค‘๋ณต ์ œ๊ฑฐ + ๋ฆฌ์ŠคํŠธ ์ฐจ์ง‘ํ•ฉ

๋‘ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์žˆ์„ ๋•Œ ์„œ๋กœ ์ค‘๋ณต๋˜๋Š” ๊ฐ’์„ ์ œ์™ธํ•œ ๊ฐ’๋“ค์„ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด set ์ž๋ฃŒํ˜•์„ ์ด์šฉ a = [1, 2, 3, 4] b = [2, 3, 5, 6, 7] 2, 3์ด ๊ฒน์น˜๋Š” ์›์†Œ [x for x in a if x not in set(b)]โ€‹ ์ˆœ์„œ๋ฅผ ๋ณด์กดํ•ด ์ฐจ์ง‘ํ•ฉ ์ถœ๋ ฅ set(a) - set(b) ์ˆœ์„œ ๋ณด์กด x ์ฐจ์ง‘ํ•ฉ ์ถœ๋ ฅ ๋ฆฌ์ŠคํŠธ ์ฐจ์ง‘ํ•ฉ a = ['abc', 'abcd', 'abcde'] b = ['bc', 'abc', 'abcd'] print([x for x in a if x not in b])

728x90