๐Ÿ—๏ธ Algorithm 344

[๋ฐฑ์ค€] [Python] 1912๋ฒˆ_์—ฐ์†ํ•ฉ_๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/1912 1912๋ฒˆ: ์—ฐ์†ํ•ฉ ์ฒซ์งธ ์ค„์— ์ •์ˆ˜ n(1 ≤ n ≤ 100,000)์ด ์ฃผ์–ด์ง€๊ณ  ๋‘˜์งธ ์ค„์—๋Š” n๊ฐœ์˜ ์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ˆ˜๋Š” -1,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1912๋ฒˆ ๋ฌธ์ œ - ์—ฐ์†ํ•ฉ n = int(input()) arr =list(map(int, input().split())) d = [0]*n d[0] = arr[0] for i in range(1, n): d[i] = max(arr[i], d[i-1] + arr[i]) print(max(d)) ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง€๋ฉด ์ˆœ์„œ๋Œ€๋กœ ํ•ฉํ•˜์—ฌ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์ด ๋ฌธ์ œ์—์„œ๋Š” ๋™์  ํ”„๋กœ..

[๋ฐฑ์ค€] [Python] 1904๋ฒˆ_01ํƒ€์ผ_๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋ฌธ์ œ https://www.acmicpc.net/problem/1904 1904๋ฒˆ: 01ํƒ€์ผ ์ง€์›์ด์—๊ฒŒ 2์ง„ ์ˆ˜์—ด์„ ๊ฐ€๋ฅด์ณ ์ฃผ๊ธฐ ์œ„ํ•ด, ์ง€์›์ด ์•„๋ฒ„์ง€๋Š” ๊ทธ์—๊ฒŒ ํƒ€์ผ๋“ค์„ ์„ ๋ฌผํ•ด์ฃผ์…จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๊ฐ๊ฐ์˜ ํƒ€์ผ๋“ค์€ 0 ๋˜๋Š” 1์ด ์“ฐ์—ฌ ์žˆ๋Š” ๋‚ฑ์žฅ์˜ ํƒ€์ผ๋“ค์ด๋‹ค. ์–ด๋Š ๋‚  ์ง“๊ถ‚์€ ๋™์ฃผ๊ฐ€ ์ง€์›์ด www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1904๋ฒˆ ๋ฌธ์ œ - 01ํƒ€์ผ n = int(input()) d = [0]*1000001 d[1] = 1 d[2] = 2 for i in range(3, n+1): d[i] = (d[i-1] + d[i-2])%15746 print(d[n]) ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๋™์  ํ”„๋กœ ๊ทธ๋ž˜๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๋จผ์ € d[1] => 1 ํƒ€์ผ => 1 d[2] => 00, 11 ํƒ€์ผ => 2 d[3] =>..

[๋ฐฑ์ค€] [Python] 15649๋ฒˆ_N๊ณผM(1)_ ๋ฐฑํŠธ๋ž˜ํ‚น

๋ฌธ์ œ https://www.acmicpc.net/problem/15649 15649๋ฒˆ: N๊ณผ M (1) ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ค‘๋ณต๋˜๋Š” ์ˆ˜์—ด์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ถœ๋ ฅํ•˜๋ฉด ์•ˆ๋˜๋ฉฐ, ๊ฐ ์ˆ˜์—ด์€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ์ˆ˜์—ด์€ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ถœ๋ ฅํ•ด www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 15649๋ฒˆ ๋ฌธ์ œ - N๊ณผ M(1) n, m = map(int, input().split()) s = [] def solution(): if len(s) == m: print(' '.join(map(str, s))) return for i in range(1, n+1): if i in s: continue s.append(i) solution() s.pop() solution()

[Programmers] [์—ฐ์Šต ๋ฌธ์ œ] [Python] Level2_124 ๋‚˜๋ผ์˜ ์ˆซ์ž

๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/12899 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 124 ๋‚˜๋ผ์˜ ์ˆซ์ž programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - 124 ๋‚˜๋ผ์˜ ์ˆซ์ž def solution(n): answer = '' while n: if n % 3: answer += str(n%3) n //= 3 else: answer += "4" n = n//3 - 1 return answer[::-1]

[์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] [๊ตฌํ˜„] [Python] ๋Ÿญํ‚ค ์ŠคํŠธ๋ ˆ์ดํŠธ

๋ฌธ์ œ https://www.acmicpc.net/problem/18406 18406๋ฒˆ: ๋Ÿญํ‚ค ์ŠคํŠธ๋ ˆ์ดํŠธ ์ฒซ์งธ ์ค„์— ์ ์ˆ˜ N์ด ์ •์ˆ˜๋กœ ์ฃผ์–ด์ง„๋‹ค. (10 ≤ N ≤ 99,999,999) ๋‹จ, ์ ์ˆ˜ N์˜ ์ž๋ฆฟ์ˆ˜๋Š” ํ•ญ์ƒ ์ง์ˆ˜ ํ˜•ํƒœ๋กœ๋งŒ ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ํ’€์ด # ๊ตฌํ˜„ - ๋Ÿญํ‚ค ์ŠคํŠธ๋ ˆ์ดํŠธ n = int(input()) length = len(n) summary = 0 # ์™ผ์ชฝ ๋ถ€๋ถ„์˜ ์ž๋ฆฟ์ˆ˜ ํ•ฉ ๋”ํ•˜๊ธฐ for i in range(length//2): summary += int(n[i]) # ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„์˜ ์ž๋ฆฟ์ˆ˜ ํ•ฉ ๋นผ๊ธฐ for i in range(length//2, length): summary -= int(n[i]) # ์™ผ์ชฝ ๋ถ€๋ถ„๊ณผ ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„์˜ ์ž๋ฆฟ์ˆ˜ ํ•ฉ์ด ๋™์ผํ•œ์ง€ ๊ฒ€์‚ฌ if summary ..

[์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] [๊ทธ๋ฆฌ๋””] [Python] ๋ฌธ์ž์—ด ๋’ค์ง‘๊ธฐ

๋ฌธ์ œ ๋‹ค์†œ์ด๋Š” 0๊ณผ 1๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด S๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋‹ค์†œ์ด๋Š” ์ด ๋ฌธ์ž์—ด S์— ์žˆ๋Š” ๋ชจ๋“  ์ˆซ์ž๋ฅผ ์ „๋ถ€ ๊ฐ™๊ฒŒ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ๋‹ค์†œ์ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰๋™์€ S์—์„œ ์—ฐ์†๋œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ˆซ์ž๋ฅผ ์žก๊ณ  ๋ชจ๋‘ ๋’ค์ง‘๋Š” ๊ฒƒ์ด๋‹ค. ๋’ค์ง‘๋Š” ๊ฒƒ์€ 1์„ 0์œผ๋กœ, 0์„ 1๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด S=0001100 ์ผ ๋•Œ, ์ „์ฒด๋ฅผ ๋’ค์ง‘์œผ๋ฉด 1110011์ด ๋œ๋‹ค. 4๋ฒˆ์งธ ๋ฌธ์ž๋ถ€ํ„ฐ 5๋ฒˆ์งธ ๋ฌธ์ž๊นŒ์ง€ ๋’ค์ง‘์œผ๋ฉด 1111111์ด ๋˜์–ด์„œ 2๋ฒˆ ๋งŒ์— ๋ชจ๋‘ ๊ฐ™์€ ์ˆซ์ž๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ฒ˜์Œ๋ถ€ํ„ฐ 4๋ฒˆ์งธ ๋ฌธ์ž๋ถ€ํ„ฐ 5๋ฒˆ์งธ ๋ฌธ์ž๊นŒ์ง€ ๋ฌธ์ž๋ฅผ ๋’ค์ง‘์œผ๋ฉด ํ•œ ๋ฒˆ์— 0000000์ด ๋˜์–ด์„œ 1๋ฒˆ ๋งŒ์— ๋ชจ๋‘ ๊ฐ™์€ ์ˆซ์ž๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋‹ค์†œ์ด๊ฐ€ ํ•ด์•ผํ•˜๋Š” ํ–‰๋™์˜ ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋ฌธ์ž์—ด ..

[์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] [๊ทธ๋ฆฌ๋””] [Python] ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ๊ธˆ์•ก

๋ฌธ์ œ N๊ฐœ์˜ ๋™์ „์ด ์ฃผ์–ด์งˆ ๋•Œ, ์ด ๋™์ „๋“ค๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ์–‘์˜ ์ •์ˆ˜ ๊ธˆ์•ก ์ค‘ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์—๋Š” ๋™์ „์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์–‘์˜ ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1

[์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] [๊ทธ๋ฆฌ๋””] [Python] ๊ณฑํ•˜๊ธฐ ํ˜น์€ ๋”ํ•˜๊ธฐ

๋ฌธ์ œ ๊ฐ ์ž๋ฆฌ๊ฐ€ ์ˆซ์ž(0๋ถ€ํ„ฐ 9)๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์™ผ์ชฝ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•˜๋‚˜์”ฉ ๋ชจ๋“  ์ˆซ์ž๋ฅผ ํ™•์ธํ•˜๋ฉฐ ์ˆซ์ž ์‚ฌ์ด์— '*' ํ˜น์€ '+' ์—ฐ์‚ฐ์ž๋ฅผ ๋„ฃ์–ด ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋‹จ, +๋ณด๋‹ค *๋ฅผ ๋จผ์ € ๊ณ„์‚ฐํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ์‹๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ๋ชจ๋“  ์—ฐ์‚ฐ์€ ์™ผ์ชฝ์—์„œ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 02984๋ผ๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง€๋ฉด, ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ์ˆ˜๋Š” ((((0+2)*9)*8)*4) = 576 ์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋„๋‹ˆ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. (1

[์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] [๊ทธ๋ฆฌ๋””] [Python] ๋ชจํ—˜๊ฐ€ ๊ธธ๋“œ

๐Ÿ ๋ฌธ์ œ ํ•œ ๋งˆ์„์— ๋ชจํ—˜๊ฐ€๊ฐ€ N๋ช… ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจํ—˜๊ฐ€ ๊ธธ๋“œ์—์„œ๋Š” N๋ช…์˜ ๋ชจํ—˜๊ฐ€๋ฅผ ๋Œ€์ƒ์œผ๋กœ '๊ณตํฌ๋„'๋ฅผ ์ธก์ •ํ–ˆ๋Š”๋ฐ,'๊ณตํฌ๋„'๊ฐ€ ๋†’์€ ๋ชจํ—˜๊ฐ€๋Š” ์‰ฝ๊ฒŒ ๊ณตํฌ๋ฅผ ๋Š๊ปด ์œ„ํ—˜ ์ƒํ™ฉ์—์„œ ์ œ๋Œ€๋กœ ๋Œ€์ฒ˜ํ•  ๋Šฅ๋ ฅ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ๋ชจํ—˜๊ฐ€ ๊ธธ๋“œ์žฅ์ธ ๋™๋นˆ์ด๋Š” ๋ชจํ—˜๊ฐ€ ๊ทธ๋ฃน์„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ตฌ์„ฑํ•˜๊ณ ์ž ๊ณตํฌ๋„๊ฐ€ X์ธ ๋ชจํ—˜๊ฐ€๋Š” ๋ฐ˜๋“œ์‹œ X๋ช… ์ด์ƒ์œผ๋กœ๊ตฌ์„ฑํ•œ ๋ชจํ—˜๊ฐ€ ๊ทธ๋ฃน์— ์ฐธ์—ฌํ•ด์•ผ ์—ฌํ–‰์„ ๋– ๋‚  ์ˆ˜ ์žˆ๋„๋ก ๊ทœ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™๋นˆ์ด๋Š” ์ตœ๋Œ€ ๋ช‡ ๊ฐœ์˜ ๋ชจํ—˜๊ฐ€ ๊ทธ๋ฃน์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. N๋ช…์˜ ๋ชจํ—˜๊ฐ€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์—ฌํ–‰์„ ๋– ๋‚  ์ˆ˜ ์žˆ๋Š” ๊ทธ๋ฃน ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, N = 5์ด๊ณ , ๊ฐ ๋ชจํ—˜๊ฐ€์˜ ๊ณตํฌ๋„๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ์‹œ๋‹ค. 2 3 1 2 2 ์ด ๊ฒฝ์šฐ ๊ทธ๋ฃน 1์— ๊ณตํฌ๋„๊ฐ€ 1,2,3์ธ ๋ชจํ—˜๊ฐ€๋ฅผ ํ•œ ๋ช…์”ฉ ๋„ฃ๊ณ ..

[Programmers] [์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1] [Python] Level1_3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ

https://programmers.co.kr/learn/courses/30/lessons/68935 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ ์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. n์„ 3์ง„๋ฒ• ์ƒ์—์„œ ์•ž๋’ค๋กœ ๋’ค์ง‘์€ ํ›„, ์ด๋ฅผ ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•œ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ n์€ 1 ์ด์ƒ 100,000,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜ programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ - 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ def solution(n): answer = 0 nums = [] while n >= 1: nums.append(n%3) n = n//3 nums = nums[::-1] for i in range(len(nums)): answer += nums[i] * (3**i) r..