Algorithm/BOJ
https://www.acmicpc.net/problem/1920 1920๋ฒ: ์ ์ฐพ๊ธฐ ์ฒซ์งธ ์ค์ ์์ฐ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ N๊ฐ์ ์ ์ A[1], A[2], …, A[N]์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M๊ฐ์ ์๋ค์ด ์ฃผ์ด์ง๋๋ฐ, ์ด ์๋ค www.acmicpc.net ์ ์ฐพ๊ธฐ ์ฑ๊ณต ์๊ฐ ์ ํ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ์ถ์ ๋ต๋งํ ์ฌ๋์ ๋ต ๋น์จ 1 ์ด 128 MB 217313 66856 44340 30.018% ๋ฌธ์ N๊ฐ์ ์ ์ A[1], A[2], …, A[N]์ด ์ฃผ์ด์ ธ ์์ ๋, ์ด ์์ X๋ผ๋ ์ ์๊ฐ ์กด์ฌํ๋์ง ์์๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์
๋ ฅ ์ฒซ์งธ ์ค์ ์์ฐ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ ..
Algorithm/BOJ
1-1. ํ์๊ณผ ์ ๋ ฌ (1) A – 1920 ์ ์ฐพ๊ธฐ https://www.acmicpc.net/problem/1920 B – 2750 ์ ์ ๋ ฌํ๊ธฐ https://www.acmicpc.net/problem/2750 C – 2751 ์ ์ ๋ ฌํ๊ธฐ 2 https://www.acmicpc.net/problem/2751 D – 10989 ์ ์ ๋ ฌํ๊ธฐ 3 https://www.acmicpc.net/problem/10989 E – 10815 ์ซ์ ์นด๋ https://www.acmicpc.net/problem/10815 1-2. ๊ธฐ์ด ์๋ฃ๊ตฌ์กฐ (1) A – 10828 ์คํ https://www.acmicpc.net/problem/10828 B – 10845 ํ https://www.acmicpc.net/problem/..
Algorithm/Softeer
# ๋ฐ์ด๋ฌ์ค 1์ด๋น P๋ฐฐ์ฉ ์ฆ๊ฐ # ์ฒ์ K๋ง๋ฆฌ n์ดํ -> ๋ช๋ง๋ฆฌ? # k:๋ฐ์ด๋ฌ์ค ์ , P:์ฆ๊ฐ์จ , N:์ด ์๊ฐ k,p,n = map(int,input().split()) result = k for _ in range(n): a = result % 1000000007 b = p % 1000000007 result = (a*b) % 1000000007 print(result) (a*b) % m = ( (a%m) * (b%m) ) % m https://sskl660.tistory.com/75 ๋ชจ๋๋ฌ ์ฐ์ (Modular Arithmetic) *๋ชจ๋๋ฌ ์ฐ์ (Modular Arithmetic) -> ๋ชจ๋๋ฌ ์ฐ์ (๋ชจ๋๋ฌ ์ฐ์ฐ)์ ์ ์์ ํฉ๊ณผ ๊ณฑ์ ์ด๋ค ์ฃผ์ด์ง ์์ ๋๋จธ์ง๋ฅผ ์ด์ฉํ์ฌ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค. ..
Algorithm/Softeer
import sys input = sys.stdin.readline # ๋ฐฐ๋ญ ๋ฌด๊ฒ ์ ํ W , n์ข
๋ฅ์ ๊ท๊ธ์ # ๊ฐ์ฅ ๋์ ๊ฐ๊ฒฉ์ผ๋ก ๋ฐฐ๋ญ ์ฑ์ฐ๊ธฐ w,n = map(int,input().split()) total_price = 0 #๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์
arr = [list(map(int,input().split())) for _ in range(n)] arr.sort(key = lambda x:x[1],reverse=True) idx = 0 while w>0: if arr[idx][0] >= w: total_price += arr[idx][1]*w break else: total_price += arr[idx][0]*arr[idx][1] w -= arr[idx][0] idx += 1 print(total_..
Algorithm/Softeer
import sys n = int(input()) line_dot = 2 for _ in range(n): line_dot += line_dot-1 print(line_dot**2) ์ ํ์์ ๊ตฌํ์ฌ ํ์ด
Algorithm/Softeer
import sys arr = list(map(int,input().split())) asc = list(range(1,9)) desc = list(range(8,0,-1)) result = "" if arr==asc: result = "ascending" elif arr==desc: result = "descending" else: result = "mixed" print(result)
Algorithm/Softeer
import sys input = sys.stdin.readline n,k = map(int,input().split()) line = list(input()) check = [0]*n # P:๋ก๋ด , H:๋ถํ for i in range(n): if line[i] == "P": for j in range(i-k,i+k+1): if (i==j) or (j=n): continue if line[j] == "H" and check[j] == 0 : check[j] = 1 break print(sum(check)) N์ 20000๋ณด๋ค ์๊ณ , K๋ 10๋ณด๋ค ์๊ธฐ ๋๋ฌธ์ ์์ ํ์ ๊ฐ๋ฅ ์ธ๋ฑ์ค i ๊ธฐ์ค์ผ๋ก ์์์ผ๋ก ์ฒดํฌ i == j (๋ก๋ด ์๊ธฐ ์์ ์ ์์น X) j๊ฐ ์์ญ ๋ฐ (์์์ผ๋ก ์ฒดํฌ) continue์ฒ๋ฆฌ c..
Algorithm/Softeer
import sys input = sys.stdin.readline from itertools import permutations # ๋ ์ผ์ ์์๋ฅผ ์กฐ์ํด์ ์ต์ํ์ ๋ฌด๊ฒ๋ง ๋ค ์ ์๊ฒ ํ์ n,m,k = map(int,input().split()) # n : ๋ ์ผ / m : ํ๋ฐฐ ๋ฌด๊ฒ / k : ์ํ ํ์ result = 100000 # ์ต์๋ฌด๊ฒ rail = list(map(int,input().split())) rail_list = list(permutations(rail)) # ์์ด def cal(current): total_weight, weight = 0, current[0] idx, cnt = 0, 0 while cnt < k: next_weight = current[(idx+1)%n] if ..