๊ทธ๋ฆฌ๋(5)
-
[BOJ] #1092 - ๋ฐฐ
1092๋ฒ: ๋ฐฐ ์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. N์ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ๋์งธ ์ค์๋ ๊ฐ ํฌ๋ ์ธ์ ๋ฌด๊ฒ ์ ํ์ด ์ฃผ์ด์ง๋ค. ์ด ๊ฐ์ 1,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ์ ์งธ ์ค์๋ ๋ฐ์ค์ ์ M์ด ์ฃผ์ด์ง๋ค. M์ 10,000๋ณด www.acmicpc.net ** ๋ฌธ์ ์ ํ ๊ทธ๋ฆฌ๋ ** ํ์ด ๋ชจ๋ ๋ฐ์ค๋ฅผ ๋ฐฐ๋ก ์ฎ๊ธฐ๋๋ฐ ๋๋ ์๊ฐ์ ์ต์๊ฐ ๊ณ์ฐ ๋งค ๋ถ๋ง๋ค, ๋ชจ๋ ํฌ๋ ์ธ์ ๋ํ์ฌ ์ฎ๊ธธ ์ ์๋ ๋ฐ์ค๋ฅผ ์ ํํ์ฌ ์ฎ๊ธฐ๋๋ก ํจ ๋ฐ์ค๋ฅผ ๋ฌด๊ฒ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ ๋ค์, ๋ฌด๊ฑฐ์ด ๊ฒ๋ถํฐ ์ฎ๊ธฐ๋๋ก ํจ ์๊ฐ ๋ณต์ก๋ O(NM)์ ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅ: ํฌ๋ ์ธ ๊ฐ์ N, ๋ฐ์ค ๊ฐ์ M import sys n = int(input()) cranes = list(map(int, input().split())) m = int(i..
2021.06.25 -
[BOJ] #2012 - ๋ฑ์ ๋งค๊ธฐ๊ธฐ
2012๋ฒ: ๋ฑ์ ๋งค๊ธฐ๊ธฐ ์ฒซ์งธ ์ค์ ์์ฐ์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 500,000) ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑธ์ณ ๊ฐ ์ฌ๋์ ์์ ๋ฑ์๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ค. ์์ ๋ฑ์๋ 500,000 ์ดํ์ ์์ฐ์์ด๋ค. www.acmicpc.net ** ๋ฌธ์ ์ ํ ๊ทธ๋ฆฌ๋ ** ํ์ด ์์ ๋ฑ์์ ์ค์ ๋ฑ์์ ์ฐจ์ด๋ฅผ ์ต์ํํด์ผ ํจ ๊ทธ ๋ฐฉ๋ฒ์ผ๋ก ์์๋ ๋ฑ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ฉด ๋จ n = int(input()) array = [] # ์์ ๋ฑ์ answer = 0 # ๋ถ๋ง๋์ ํฉ for _ in range(n): array.append(int(input())) array.sort() # ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ์ํ for i in range(1, n + 1): answer += abs(i - array[i - 1]) prin..
2021.06.25 -
[BOJ] #1439 - ๋ค์ง๊ธฐ
1439๋ฒ: ๋ค์ง๊ธฐ ๋ค์์ด๋ 0๊ณผ 1๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด S๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋ค์์ด๋ ์ด ๋ฌธ์์ด S์ ์๋ ๋ชจ๋ ์ซ์๋ฅผ ์ ๋ถ ๊ฐ๊ฒ ๋ง๋ค๋ ค๊ณ ํ๋ค. ๋ค์์ด๊ฐ ํ ์ ์๋ ํ๋์ S์์ ์ฐ์๋ ํ๋ ์ด์์ ์ซ์๋ฅผ ์ก๊ณ ๋ชจ www.acmicpc.net ** ๋ฌธ์ ์ ํ ๊ทธ๋ฆฌ๋ ** ํ์ด ๋ฌธ์์ด์ ์๋ ์ซ์๋ฅผ ๋ชจ๋ 0 ๋๋ ๋ชจ๋ 1๋ก ๋ง๋ค์ด์ผ ํจ ๋ฌธ์์ด์ ๊ธธ์ด๋ 100๋ง ์ดํ์ด๋ฏ๋ก, ์๊ฐ ๋ณต์ก๋๋ O(N)์ ํด๊ฒฐํด์ผ ํจ data = input() states = [0] * 2 # states[0-1]: 0-1์ด ์ฐ์์ผ๋ก ์ค๋ ์งํฉ ์ states[int(data[0])] += 1 for i in range(1, len(data)): if data[i] != data[i - 1]: # 0๊ณผ 1์ด ๋ฐ๋ ๋ state..
2021.06.25 -
[BOJ] #5585 - ๊ฑฐ์ค๋ฆ๋
5585๋ฒ: ๊ฑฐ์ค๋ฆ๋ ํ๋ก๋ ์์ฃผ JOI์กํ์ ์์ ๋ฌผ๊ฑด์ ์ฐ๋ค. JOI์กํ์ ์๋ ์๋์ผ๋ก 500์, 100์, 50์, 10์, 5์, 1์์ด ์ถฉ๋ถํ ์๊ณ , ์ธ์ ๋ ๊ฑฐ์ค๋ฆ๋ ๊ฐ์๊ฐ ๊ฐ์ฅ ์ ๊ฒ ์๋์ ์ค๋ค. ํ๋ก๊ฐ JOI์กํ์ ์์ ๋ฌผ๊ฑด์ ์ฌ www.acmicpc.net ** ๋ฌธ์ ์ ํ ๊ทธ๋ฆฌ๋ ** ํ์ด ๊ฑฐ์ค๋ฆ ๋์ ์ต์ ๊ฐ์ ๊ณ์ฐ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ํ์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ ํ์ผ๋ก, ๋จ์ํ 'ํฐ ํํ ๋จ์' ์์๋๋ก ์๋์ ๊ฑฐ์ฌ๋ฌ ์ฃผ๋ฉด ์ต์ ์ ํด๋ฅผ ๊ตฌํ ์ ์์ changes = 1000 - int(input()) cnt = 0 for i in [500, 100, 50, 10, 5, 1]: cnt += changes // i changes %= i print(cnt)
2021.06.25 -
[์๊ณ ๋ฆฌ์ฆ] #7 ํ์ ์๊ณ ๋ฆฌ์ฆ
** ํ์ ์๊ณ ๋ฆฌ์ฆ(Greedy algorithm) ์ต์ ์ ํด์ ๊ฐ๊น์ด ๊ฐ์ ๊ตฌํ๊ธฐ ์ํด ์ฌ์ฉ๋จ ์ฌ๋ฌ ๊ฒฝ์ฐ ์ค ํ๋๋ฅผ ๊ฒฐ์ ํด์ผํ ๋๋ง๋ค, ๋งค์๊ฐ ์ต์ ์ด๋ผ๊ณ ์๊ฐ๋๋ ๊ฒฝ์ฐ๋ฅผ ์ ํํ๋ ๋ฐฉ์์ผ๋ก ์งํํด์, ์ต์ข ์ ์ธ ๊ฐ์ ๊ตฌํ๋ ๋ฐฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์์ฑํ๋ ์ผ์ข ์ ์ ๋ต ** ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ 1) ๋์ ๋ฌธ์ ์ง๋ถํด์ผ ํ๋ ๊ฐ์ด 4720์ ์ผ ๋ 1์ 50์ 100์, 500์ ๋์ ์ผ๋ก ๋์ ์ ์๊ฐ ๊ฐ์ฅ ์ ๊ฒ ์ง๋ถํ์์ค. ๊ฐ์ฅ ํฐ ๋์ ๋ถํฐ ์ต๋ํ ์ง๋ถํด์ผ ํ๋ ๊ฐ์ ์ฑ์ฐ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ ๊ฐ๋ฅ ํ์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋งค์๊ฐ ์ต์ ์ด๋ผ๊ณ ์๊ฐ๋๋ ๊ฒฝ์ฐ๋ฅผ ์ ํํ๋ฉด ๋จ coin_list = [500, 100, 50, 1] def min_coin_count(value, coin_list): total_coin_count = 0 d..
2021.06.05