๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐ˜์‘ํ˜•

Programming/Softeer

(26)
[Softeer][level3] GINI์•ผ ๋„์™€์ค˜ (python) https://softeer.ai/practice/info.do?idx=1&eid=583 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋Š”๋ฐ ๋ณ€์ˆ˜๋ช… ๋•Œ๋ฌธ์ด์—ˆ๋‹ค,,, 0 -> 1๋ถ„์ธ ๊ฒฝ์šฐ ์†Œ๋‚˜๊ธฐ ํ™•์‚ฐ ์—…๋ฐ์ดํŠธ๋ฅผ ์•ˆํ•ด์ฃผ์–ด 90์ . BFS๋ฅผ ํ†ตํ•ด ํ•˜๋‚˜์”ฉ ํƒ์ƒ‰ํ•˜๋Š” ๋ฌธ์ œ. ์ฝ”๋“œ import sys from collections import deque R, C = map(int, input().split()) map = [list(sys.stdin.readline().rstrip()) for _ in range(R)] visited = [[0] * C for _ in range(R)] # ์ƒ, ํ•˜, ์ขŒ, ์šฐ dc = [0, 0, -1, 1] dr = [-1,..
[Softeer][level3] ์Šค๋งˆํŠธ ๋ฌผ๋ฅ˜ (python) https://softeer.ai/practice/info.do?idx=1&eid=414 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด ๋ฌธ์ œ๋Œ€๋กœ ๊ฐ„๋‹จํžˆ ๊ตฌํ˜„ํ•จ. ์กฐ๊ฑด๋งŒ ์ž˜ ๋งž์ถ”๋ฉด ๊ฐ„๋‹จ. ๋กœ๋ด‡์ธ ๊ฒฝ์šฐ ์ฃผ๋ณ€ K๊ฐœ ์œ„์น˜๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ถ€ํ’ˆ์ด๋ฉด ๊ฐฏ์ˆ˜๋ฅผ countํ•˜๊ณ  ํ•ด๋‹น ์œ„์น˜์˜ ๋ฌผํ’ˆ์„ ์—†์• ์คŒ ์ฝ”๋“œ import sys N, K = map(int, input().split()) line = list(str(sys.stdin.readline())) cnt = 0 for i in range(N) : if line[i] == 'P' : # ๋กœ๋ด‡์ธ ๊ฒฝ์šฐ for j in range(i - K, i + K + 1) : # ์ขŒ,์šฐ ์ฃผ๋ณ€ K๊ฐœ ํ™•์ธ if j = N :..
[Softeer][level3] ๋™๊ณ„ ํ…Œ์ŠคํŠธ ์‹œ์  ์˜ˆ์ธก (python) https://softeer.ai/practice/info.do?idx=1&eid=411 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด BFS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒ์ƒ‰ ์ ์–ด๋„ 2๋ฒˆ ์ด์ƒ ์™ธ๋ถ€ ๊ณต๊ธฐ์™€ ์ ‘์ด‰ํ•œ ์–ผ์Œ์„ ๊ณ ๋ คํ•ด์•ผํ•˜๋ฏ€๋กœ ์–ผ์Œ์„ ๋งŒ๋‚ฌ์„ ๋•Œ countํ•ด์ฃผ๊ณ  2๋ฒˆ ์ด์ƒ count๋œ ๊ฒฝ์šฐ ์–ผ์Œ์„ ๋…น์ด๋Š” ๊ฒƒ์œผ๋กœ ํ•ด๊ฒฐ. ์–ผ์Œ์ด ์•„๋‹Œ๋ฐ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜๋˜ ๊ฒฝ์šฐ, ์ฃผ๋ณ€ ํƒ์ƒ‰์„ ์œ„ํ•ด queue์— ์ถ”๊ฐ€ ์ฝ”๋“œ import sys from collections import deque N, M = map(int, input().split()) grid = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] def BFS(..
[Softeer][level3] ํƒ๋ฐฐ ๋งˆ์Šคํ„ฐ ๊ด‘์šฐ (python) https://softeer.ai/practice/info.do?idx=1&eid=581 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด itertools์˜ permutations(์ˆœ์—ด)์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํƒ๋ฐฐ ๋ ˆ์ผ์˜ ๊ฒฝ์šฐ๋ฅผ ์ €์žฅ. ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํƒ๋ฐฐ ๋ ˆ์ผ์˜ ๊ฒฝ์šฐ ๊ฐ๊ฐ์— ๋Œ€ํ•ด box์— ํƒ๋ฐฐ ๋ฐ”๊ตฌ๋‹ˆ ๋ฌด๊ฒŒ๋ฅผ ๋„˜์ง€ ์•Š๋„๋ก ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ณ  ์‹œํ–‰ ํšŸ์ˆ˜(K) ๋Œ€๋น„ ๊ฐ€์žฅ ์ ์€ ํƒ๋ฐฐ ๋ฌด๊ฒŒ ์ถœ๋ ฅ. ์ฝ”๋“œ import sys from itertools import permutations N, M, K = map(int, input().split()) rail_weights = list(map(int, sys.stdin.readline().split())) # ์ „์ฒด ๊ฐ€๋Šฅํ•œ ์ˆœ์—ด..
[Softeer][level3] ์šฐ๋ฌผ ์•ˆ ๊ฐœ๊ตฌ๋ฆฌ (python) https://softeer.ai/practice/info.do?idx=1&eid=394 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด ๊ทธ๋ƒฅ ์กฐ๊ฑด๊ฐ€์ง€๊ณ  ๊ตฌํ˜„ํ•จ. db๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™”ํ•ด์„œ(0๋ฒˆ์งธ index์ œ์™ธ) ์ง์ ‘ index์— ํ•ด๋‹นํ•˜๋Š” ๋ฌด๊ฒŒ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ž‘์€ ๊ฒฝ์šฐ 0์œผ๋กœ ๋ณ€๊ฒฝ db์— ์ €์žฅ๋œ ๊ด€๊ณ„๋“ค ์ค‘ 1์ธ ๊ฒฝ์šฐ์˜ ๊ฐฏ์ˆ˜ ์ถœ๋ ฅ ์ฝ”๋“œ import sys N, M = map(int, input().split()) weights = [0] + list(map(int, sys.stdin.readline().split())) relations = [list(map(int,input().split())) for _ in range(M)] db = [0] + [1] * N f..
[Softeer][level3] ์กฐ๋ฆฝ ๋ผ์ธ (python) https://softeer.ai/practice/info.do?idx=1&eid=403 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด dynamic programming ๋ฌธ์ œ. ์ดˆ๊ธฐ ์‹œ๊ฐ„์„ dpํ…Œ์ด๋ธ” ์ฒซ ๋ฒˆ์งธ index์— ์ €์žฅํ•˜๊ณ , i-1๊นŒ์ง€ line A, B์˜ ์ž‘์—… ์‹œ๊ฐ„์„ ๊ตฌํ•˜๊ณ (i-1๊นŒ์ง€ line A, i-1๊นŒ์ง€ line B์— B->A ์ค‘ ์ ์€ ์‹œ๊ฐ„) i๋ฒˆ์งธ A, B์˜ ์ž‘์—… ์‹œ๊ฐ„์„ ๊ฐ๊ฐ ๋”ํ•ด์„œ dp์— ์ €์žฅ. N-1๋ฒˆ์งธ dp์˜ ์ €์žฅ๋œ line A, B๋งˆ๋‹ค ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ ์ค‘ ์ ์€ ์‹œ๊ฐ„ ์ถœ๋ ฅ ์ฝ”๋“œ import sys N = int(input()) # [A์ž‘์—…์‹œ๊ฐ„, B์ž‘์—…์‹œ๊ฐ„, A->B์‹œ๊ฐ„, B->A ์‹œ๊ฐ„] lines = [list(map(int, sys.st..
[Softeer][level3] ์ง•๊ฒ€๋‹ค๋ฆฌ (python) https://softeer.ai/practice/info.do?idx=1&eid=390 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด rocks์— ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐ์€ ๋Œ์˜ ์œ„์น˜ ๊ธฐ์ค€์œผ๋กœ ๋ช‡ ๊ฐœ๊นŒ์ง€ ๋ฐ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์ €์žฅ. ์™ผ์ชฝ -> ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ์นธ์”ฉ ์ด๋™ํ•˜๋ฉด์„œ, ํ•ด๋‹น ๋Œ ๊ธฐ์ค€(๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐ์€ ๋Œ์ด๋ผ ๊ฐ€์ •)์œผ๋กœ ์™ผ์ชฝ์— ๋” ์ž‘์€ ๊ฐฏ์ˆ˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ. ๋” ์ž‘์€ ๋Œ์ด ์กด์žฌํ•˜๋ฉด, ๊ทธ ๋Œ๋“ค ์ค‘ ๊ฐ€์žฅ ํฐ ๋Œ์— ๋„๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ• ์ˆ˜(์ž‘์€ ๋Œ ์ค‘ ๊ฐ€์žฅ ํฐ ๋Œ์„ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ†ต๊ณผํ•˜๋Š” ๊ฐฏ์ˆ˜) + 1(ํ˜„์žฌ ๋Œ์„ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ง€๋‚˜๋Š” ๊ฒฝ์šฐ)์„ rocks์— ์ €์žฅ. ex) "3,2,1,4,5"์—์„œ "3,4,5" ๊ฐ€ ์ตœ๋Œ€๋กœ ๋ฐ์„ ์ˆ˜ ์žˆ๋Š” ๋Œ์˜ ์ˆ˜ ์ฝ”๋“œ import sys N = int(input..
[Softeer][level3] ์ˆ˜ํผ ๋ฐ”์ด๋Ÿฌ์Šค (python) https://softeer.ai/practice/info.do?idx=1&eid=391 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด K x P^(10 x N)์„ ๊ตฌํ•ด์•ผํ•˜๋Š”๋ฐ N์ด ๋„ˆ๋ฌด ์ปค์ง„๋‹ค๋Š”๊ฒŒ ๋ฌธ์ œ. O(logN)์„ ๋งŒ์กฑํ•˜๋„๋ก ์žฌ๊ท€์ ์œผ๋กœ ํ’€์–ด์•ผํ•จ. - cal(2,10) = cal(2,5) x cal(2,5) - cal(2,5) = cal(2,2) x cal(2,2) x 2 - cal(2,2) = cal(2,1) x cal(2,1) - cal(2,1) = 2 ์ฝ”๋“œ import sys K, P, N = map(int, sys.stdin.readline().split()) # 0.1์ดˆ๋‹น ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๋ฅผ 0.1์ดˆ ๋‹จ์œ„๋กœ ๋ณ€๊ฒฝ N *= 10 def Cal..

๋ฐ˜์‘ํ˜•