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

Algorithm

(120)
[BOJ] ํ†ต๊ณ„ํ•™ (#2108) ๋ฌธ์ œ ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ํ†ต๊ณ„ํ•™์—์„œ ์ƒ๋‹นํžˆ ์ค‘์š”ํ•œ ์ผ์ด๋‹ค. ํ†ต๊ณ„ํ•™์—์„œ N๊ฐœ์˜ ์ˆ˜๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ๊ธฐ๋ณธ ํ†ต๊ณ„๊ฐ’์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ๋‹ค. ๋‹จ, N์€ ํ™€์ˆ˜๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ž. ์‚ฐ์ˆ ํ‰๊ท  : N๊ฐœ์˜ ์ˆ˜๋“ค์˜ ํ•ฉ์„ N์œผ๋กœ ๋‚˜๋ˆˆ ๊ฐ’ ์ค‘์•™๊ฐ’ : N๊ฐœ์˜ ์ˆ˜๋“ค์„ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ๋‚˜์—ดํ–ˆ์„ ๊ฒฝ์šฐ ๊ทธ ์ค‘์•™์— ์œ„์น˜ํ•˜๋Š” ๊ฐ’ ์ตœ๋นˆ๊ฐ’ : N๊ฐœ์˜ ์ˆ˜๋“ค ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ๋‚˜ํƒ€๋‚˜๋Š” ๊ฐ’ ๋ฒ”์œ„ : N๊ฐœ์˜ ์ˆ˜๋“ค ์ค‘ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์˜ ์ฐจ์ด N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋„ค ๊ฐ€์ง€ ๊ธฐ๋ณธ ํ†ต๊ณ„๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹จ, N์€ ํ™€์ˆ˜์ด๋‹ค. ๊ทธ ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ์ •์ˆ˜๋“ค์ด ์ฃผ์–ด์ง„๋‹ค. ์ž…๋ ฅ๋˜๋Š” ์ •์ˆ˜์˜ ์ ˆ๋Œ“๊ฐ’์€ 4,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์—๋Š” ์‚ฐ์ˆ ํ‰๊ท ์„ ์ถœ๋ ฅํ•œ๋‹ค. ์†Œ์ˆ˜์  ์ดํ•˜ ..
[BOJ] ํ•™์ƒ๋ฒˆํ˜ธ (#1235) ๋ฌธ์ œ ์ด๋ฒˆ์—๋Š” ํ•™์ƒ๋“ค์„ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ•™์ƒ๋งˆ๋‹ค ๊ณ ์œ ํ•œ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ํ•™์ƒ ๋ฒˆํ˜ธ๋Š” 0๋ถ€ํ„ฐ 9 ์‚ฌ์ด์˜ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด๋กœ, ๋ชจ๋“  ํ•™์ƒ๋“ค์˜ ํ•™์ƒ ๋ฒˆํ˜ธ๋Š” ์„œ๋กœ ๋‹ค๋ฅด์ง€๋งŒ ๊ทธ ๊ธธ์ด๋Š” ๋ชจ๋‘ ๊ฐ™๋‹ค. ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•ด ๋†“๊ณ  ๋ณด๋‹ˆ, ๊น€์ง„์˜ ์กฐ๊ต๋Š” ์–ด์ฉŒ๋ฉด ๋ฒˆํ˜ธ๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๊ธด ๊ฒƒ์€ ์•„๋‹Œ๊ฐ€ ์‹ถ์€ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์€ 7์ž๋ฆฌ์˜ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ๋ณด์ž. ์ด๋ฆ„๋ฒˆํ˜ธ ์˜ค๋ฏผ์‹ 1212345 ๊น€ํ˜•ํƒ 1212356 ์ด๋™ํ˜ธ 0033445 ์ด์ฒ˜๋Ÿผ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ๊ตณ์ด 7์ž๋ฆฌ๋กœ ํ•˜์ง€ ์•Š๊ณ , ๋’ค์—์„œ ์„ธ ์ž๋ฆฌ๋งŒ์„ ์ถ”๋ ค์„œ ๋‚จ๊ฒจ ๋†“์•„๋„ ๋ชจ๋“  ํ•™์ƒ๋“ค์˜ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฆ„๋ฒˆํ˜ธ ์˜ค๋ฏผ์‹ 345 ๊น€ํ˜•ํƒ 356 ์ด๋™ํ˜ธ 445 ํ•˜์ง€๋งŒ ์„ธ ์ž๋ฆฌ๋ณด๋‹ค ์ ๊ฒŒ ๋‚จ๊ฒจ ๋†“์•„์„œ๋Š” ๋ชจ๋“  ํ•™์ƒ๋“ค์˜ ํ•™์ƒ ..
[Programmeres] ์ •์ˆ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ ๋ฌธ์ œ ํ•จ์ˆ˜ solution์€ ์ •์ˆ˜ n์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค. n์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ํฐ๊ฒƒ๋ถ€ํ„ฐ ์ž‘์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ์ƒˆ๋กœ์šด ์ •์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด n์ด 118372๋ฉด 873211์„ ๋ฆฌํ„ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ œํ•œ์‚ฌํ•ญ n์€ 1์ด์ƒ 8000000000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ•ด์„ค ์ฝ”๋“œ def solution(n): n = int(n) temp = map(str,str(n)) return int(''.join(sorted(temp, reverse=True))) ๋ถ„์„ > map ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ์šฐ๋ฆฌ๋Š” ์š”์†Œ์— ์ ์šฉํ•  ํ•จ์ˆ˜ ํ•˜๋‚˜๋งŒ ๋”ฑ ๋„˜๊ฒจ์ค€๋‹ค๋ฉด ์•Œ์•„์„œ, ์ž๋™์ ์œผ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•จ์ˆ˜์— ์ ์šฉํ•ด์„œ map ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์ค€๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ์— ์ž…๋ ฅ๋ฐ›์€ ์ •์ˆ˜ n์„ str ํ˜•ํƒœ๋กœ map ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•ด์ฃผ๋ฉด str ํ˜•ํƒœ์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ..
[Programmers] ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ๋ฌธ์ œ ๋‘ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด ๋ณด์„ธ์š”. ๋ฐฐ์—ด์˜ ๋งจ ์•ž์— ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜, ๊ทธ๋‹ค์Œ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๋„ฃ์–ด ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‘ ์ˆ˜ 3, 12์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” 3, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋Š” 12์ด๋ฏ€๋กœ solution(3, 12)๋Š” [3, 12]๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ ์‚ฌํ•ญ ๋‘ ์ˆ˜๋Š” 1์ด์ƒ 1000000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ•ด์„ค ์ฝ”๋“œ def solution(n, m): # a ์™€ b์— ์ž…๋ ฅ๋œ n๊ณผ m ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. a = n b = m # ๋งŒ์•ฝ n์ด m๋ณด๋‹ค ๋” ํฌ๋‹ค๋ฉด, n๊ณผ m์˜ ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค. if n>m: n, m = m, n # m%n์ด 0์ด ๋  ๋•Œ๊นŒ์ง€ m%n์„ ๋ฐ˜๋ณตํ•˜๊ณ  ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋  ๋•Œ์˜ n๊ฐ’์„ ๊ตฌํ•œ๋‹ค. while m%n: r = m%n m ..
[BOJ] ๋‹จ์–ด์ •๋ ฌ (#1181) ๋ฌธ์ œ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ N๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๊ธธ์ด๊ฐ€ ์งง์€ ๊ฒƒ๋ถ€ํ„ฐ ๊ธธ์ด๊ฐ€ ๊ฐ™์œผ๋ฉด ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 20,000) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 50์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ์ถœ๋ ฅ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜์—ฌ ๋‹จ์–ด๋“ค์„ ์ถœ๋ ฅํ•œ๋‹ค. ๋‹จ, ๊ฐ™์€ ๋‹จ์–ด๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์ž…๋ ฅ๋œ ๊ฒฝ์šฐ์—๋Š” ํ•œ ๋ฒˆ์”ฉ๋งŒ ์ถœ๋ ฅํ•œ๋‹ค. ๋‚˜์˜ ์ฝ”๋“œ N = int(input()) array = [] new_array = [] for _ in range(N): word = input() array.append(word) # word๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” array ๋งŒ๋“ค๊ธฐ array..
[BOJ] ๊ทธ๋ฃน ๋‹จ์–ด ์ฒด์ปค (#1316) ๋ฌธ์ œ ๊ทธ๋ฃน ๋‹จ์–ด๋ž€ ๋‹จ์–ด์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์— ๋Œ€ํ•ด์„œ, ๊ฐ ๋ฌธ์ž๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ๋งŒ์„ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ccazzzzbb๋Š” c, a, z, b๊ฐ€ ๋ชจ๋‘ ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๊ณ , kin๋„ k, i, n์ด ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ฃน ๋‹จ์–ด์ด์ง€๋งŒ, aabbbccb๋Š” b๊ฐ€ ๋–จ์–ด์ ธ์„œ ๋‚˜ํƒ€๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ฃน ๋‹จ์–ด๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋‹จ์–ด N๊ฐœ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ๊ทธ๋ฃน ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N์ด ๋“ค์–ด์˜จ๋‹ค. N์€ 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๋‹จ์–ด๊ฐ€ ๋“ค์–ด์˜จ๋‹ค. ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ๋˜์–ด์žˆ๊ณ  ์ค‘๋ณต๋˜์ง€ ์•Š์œผ๋ฉฐ, ๊ธธ์ด๋Š” ์ตœ๋Œ€ 100์ด๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ๊ทธ๋ฃน ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ํ•ด์„ค ์ฝ”๋“œ N = int(input()) cnt = 0 for ..
[Programmers] ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ ๋ฌธ์ œ ์–ด๋–ค ์ˆซ์ž์—์„œ k๊ฐœ์˜ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ–ˆ์„ ๋•Œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋ฅผ ๊ตฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆซ์ž 1924์—์„œ ์ˆ˜ ๋‘ ๊ฐœ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด [19, 12, 14, 92, 94, 24] ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋Š” 94 ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ์ˆซ์ž number์™€ ์ œ๊ฑฐํ•  ์ˆ˜์˜ ๊ฐœ์ˆ˜ k๊ฐ€ solution ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. number์—์„œ k ๊ฐœ์˜ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ–ˆ์„ ๋•Œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”. ์ œํ•œ ์กฐ๊ฑด number๋Š” 2์ž๋ฆฌ ์ด์ƒ, 1,000,000์ž๋ฆฌ ์ดํ•˜์ธ ์ˆซ์ž์ž…๋‹ˆ๋‹ค. k๋Š” 1 ์ด์ƒ number์˜ ์ž๋ฆฟ์ˆ˜ ๋ฏธ๋งŒ์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ number k return "1924" 2 "94" "12..
[Programmers] ๊ฐ€์žฅ ํฐ ์ˆ˜ ๋ฌธ์ œ 0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ •์ˆ˜๋ฅผ ์ด์–ด ๋ถ™์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์•Œ์•„๋‚ด ์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์–ด์ง„ ์ •์ˆ˜๊ฐ€ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์ด์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜๋Š” 6210์ž…๋‹ˆ๋‹ค. 0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numbers๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ˆœ์„œ๋ฅผ ์žฌ๋ฐฐ์น˜ํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ ์‚ฌํ•ญ numbers์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 100,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค. numbers์˜ ์›์†Œ๋Š” 0 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค. ์ •๋‹ต์ด ๋„ˆ๋ฌด ํด ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด return ํ•ฉ๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ [6, 10, 2] "6210" [3, 30, ..