Today I Learn (20220329)
์ค๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ๊ณผ ๊ทธ๋ฆฌ๋, ์๋ผํ ์คํ ์ค๋ค์ ์ฒด์ ๋ํด ๋ฐฐ์ ๋ค.
์ฌ์ค ์ฒ์์๋ ๋ด๊ฐ ์๋ ์ํ์ ๊ฐ๋ ์ด๋ผํด๋ ๊ตฌํ์ ํด๋ด๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ต๊ฒ ๋ค๊ฐ์๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์์ํ ์ง ๊ฑฐ์ ํ๋ฌ์ด ๋์ด๊ฐ๋๋ฐ, ์์ง ์ํ-->์ฝ๋๋ก ๊ตฌํ ์ด ๋ถ๋ถ์ด ๋ถ์กฑํ๋ค๊ณ ๋๊ปด์ง๋ค. ์์ผ๋ก ๋ ๋ง์ ์ฐ์ต์ด ํ์ํ๊ฑฐ ๊ฐ๋ค. ํ์ง๋ง ์ํ์์ ๋ฐฐ์ ๋๊ฒ์ ์ฝ๋๋ก ๊ตฌํํด ์ฝ๊ฒ ๊ฐ์ ๋ผ ์ ์๋ค๋ ์ ์ด ํฅ๋ฏธ๋กญ๊ฒ ๋ค๊ฐ์๋ค.
์ค๋ ๋์ ๊ณํ๋ฒ์ ๋ํด ์ผ๋ถ ๋ฐฐ์ ๋๋ฐ, ๋ง์ ์ฐ์ต๊ณผ ๋ณต์ต์ด ํ์ํด๋ณด์ธ๋ค. ์์ง ๊ฐ๋ ์ด ์ ์กํ์ง ์๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋ง์ด ์ง๋ฌธํ๊ณ ๋ด๊ฐ ๋ถ์กฑํ ์ ์ ์ฑ์๋๊ฐ์ผ๊ฒ ๋ค!
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
์๋ฏธ: ์ต์ด์ ์๊ณ ๋ฆฌ์ฆ
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ(-ไบ้คๆณ, Euclidean algorithm) ๋๋ ์ ํด๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ 2๊ฐ์ ์์ฐ์ ๋๋ ์ ์(ๆดๅผ)์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ๋์ด๋ค. (์ถ์ฒ:wikipedia)
<๊ตฌํ>
a,b = map(int,input().split())
for i in range(min(a,b),0,-1):
if a%i==0 and b%i==0:
print(i)
break
a,b = map(int,input().split())
for i in range(min(a,b),0,-1):
if a%i==0 and b%i==0:
print(i)
break
a,b = map(int,input().split())
def abc(a,b):
if b==0:
print(a)
return
abc(b,(a-b)%b)
abc(a,b)
a,b = map(int,input().split())
answer = 1
while b:
answer = a%b
a=b
b=answer
print(a)
์์ฉ - ์ต์๊ณต๋ฐฐ์ ๊ตฌํ๊ธฐ
#์ซ์ 2๊ฐ ์
๋ ฅ๋ฐ๊ณ ์
๋ ฅ๋ฐ์ ๋ ์ซ์์ ์ต์ ๊ณต๋ฐฐ์ ๊ตฌํ๊ธฐ(least common multiple)
#lcm=gcd*(a/gcd)*(b/gcd)
a,b = map(int,input().split())
gcd=0
def abc(a,b):
global gcd
if b==0:
gcd = a
return
abc(b,(a-b)%b)
abc(a,b)
lcm = gcd*(a/gcd)*(b/gcd)
print(int(lcm))
์๋ผํ ์คํ ๋ค์ค์ ์ฒด (์์ ๊ตฌํ๊ธฐ)
#์๋ผํ ์คํ
๋ค์ค์ ์ฒด (์์ ๊ตฌํ๊ธฐ)
#์์ - 1๊ณผ ์๊ธฐ ์์ ๋ง์ผ๋ก ๋๋ ์ ์๋ ์
#์
๋ ฅ ๋ฐ์ ํ ์
๋ ฅ๋ฐ์ ์ซ์๊ฐ ์์์ธ์ง ์๋์ง ์ถ๋ ฅ!
#ํํธ 2๋ถํฐ ์๊ธฐ์์ -1 ๊น์ง ๋๋์์ ๋ ๋๋จธ์ง๊ฐ 0์ด๋ฉด ์๋จ
#์
๋ ฅ๊ฐ์ ๋ฐ์ ์์์ธ์ง ํ๋ณํ์์ค.
#๋ด ์ฝ๋
n = int(input())
for i in range(2,n):
if n%i ==0:
print('์์ ์๋จ')
break
else:
print('์์ ๋จ')
#์ ๋ ฅ 50 #์ถ๋ ฅ 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
#์๋ผํ ์คํ
๋ค์ค์ ์ฒด (์์ ๊ตฌํ๊ธฐ)
#์์ - 1๊ณผ ์๊ธฐ ์์ ๋ง์ผ๋ก ๋๋ ์ ์๋ ์
#์
๋ ฅ ๋ฐ์ ํ ์
๋ ฅ๋ฐ์ ๋ฒ์๊น์ง์ ์์๋ฅผ ์ฐพ๊ธฐ
a = int(input())
answer=[]
check=[0]*(a+1) #์ง์ธ ๊ฑฐ๋ฅผ ์ฒดํฌํ๋ ๋ฐ์ค
for i in range(2,a+1): #2๋ถํฐ 50๊น์ง ํ์ธ
if check[i] ==0:
answer.append(i) #์์๋ answer์ ์ ์ฅ~
#๋จ์ ์ ์ค์ ์์ ์ ๋ถํฐ 50๊น์ง ์์์์ ๋ฐฐ์์ ํด๋นํ๋ index์ ๊ฐ์ 1๋ก ์ฒดํฌ
for j in range(i+i,a+1,i):
check[j]=1
print(*answer)
๊ทธ๋ฆฌ๋(greedy)
https://www.acmicpc.net/problem/11399
#๋ณต์ก๋ n^2
n = int(input())
people = list(map(int,input().split()))
people.sort()
total=0
for i in range(n):
for j in range(i+1):
total+=people[j]
print(total)
#๋ณต์ก๋ n
a = int(input())
arr = list(map(int,input().split()))
arr.sort()
sum=0
for i in range(a):
sum+=(arr[i]*(a-1))
print(sum)
#์์ฝ์ ๊ฐ์ ์
๋ ฅ๋ฐ๊ณ , ์์ฝ ์์์๊ฐ, ๋ง๊ฐ์๊ฐ ์
๋ ฅ๋ฐ์ ์ต๋ ๋ช๊ฐ์ ์์ฝ์ ๋ฐ์ ์ ์๋์ง
#์
๋ ฅ
10 #์์ฝ ๊ฐ์
18 21 #์์ฝ ์์ ์๊ฐ, ํํฐ ๋ง์น๋ ์๊ฐ ์
๋ ฅ
11 14
15 17
18 22
13 16
10 16
12 23
22 24
16 20
15 19
#1.๋๋๋ ์๊ฐ ๊ธฐ์ค์ผ๋ก sort
#2.๋ค์ ์์์๊ฐ์ด ๊ทธ ์ ํํฐ ๋๋๋ ์๊ฐ๋ณด๋ค๋ ํฌ๊ฑฐ๋ ๊ฐ๋ค (๋ค์์์ >=๊ทธ ์ ๋ cnt)
schedules = []
N = int(input())
for _ in range(N):
schedules.append(list(map(int, input().split())))
schedules.sort(key=lambda x: x[1]) #ํํฐ ์ข
๋ฃ์๊ฐ์ ๊ธฐ์ค์ผ๋ก sortํ๊ธฐ
time = 0
cnt = 0
for i in range(len(schedules)):
if time <= schedules[i][0]: #์์ ์๊ฐ๊ณผ ๋น๊ต
time = schedules[i][1] #๋ ์๊ฐ์ ๋์
ํด์ฃผ๊ธฐ
cnt += 1 #ํํฐ ์
print(cnt)
1931๋ฒ: ํ์์ค ๋ฐฐ์
(1,4), (5,7), (8,11), (12,14) ๋ฅผ ์ด์ฉํ ์ ์๋ค.
www.acmicpc.net
๋น์ทํ์ง๋ง ํ์ด๋ฒ์ด ์ข ๋ฌ๋๋ ๋ฐฑ์ค๋ฌธ์ ... 2๋ฒ์ด๋ ํ๋ ธ๋ค.
์ด ๋ฌธ์ ์ ๊ฒฝ์ฐ์๋ ๋จผ์ ์์์๊ฐ์ผ๋ก ์ ๋ ฌ์ ํด์ฃผ๊ณ ๋ค์ ์ข ๋ฃ์๊ฐ์ผ๋ก ์ ๋ ฌํด์ค์ผ ํด๊ฒฐํ ์ ์์๋ค.
n = int(input())
meeting=[list(map(int,input().split())) for _ in range(n)]
meeting.sort(key=lambda x:x[0])
meeting.sort(key=lambda x:x[1])
cnt=0
time=0
for j in range(n):
if time<=meeting[j][0]:
time = meeting[j][1]
cnt+=1
print(cnt)
'๐๐จ๐๐๐ฒ ๐ ๐๐๐๐ซ๐ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐๐จ๐๐๐ฒ ๐ ๐๐๐๐ซ๐ง 2022.04.06.์ (0) | 2022.04.06 |
---|---|
๐๐จ๐๐๐ฒ ๐ ๐๐๐๐ซ๐ง 2022.04.05.ํ (0) | 2022.04.06 |
๐๐จ๐๐๐ฒ ๐ ๐๐๐๐ซ๐ง 2022.04.04.์ (0) | 2022.04.04 |
๐๐จ๐๐๐ฒ ๐ ๐๐๐๐ซ๐ง 2022.03.31.๋ชฉ (0) | 2022.03.31 |
๐๐จ๐๐๐ฒ ๐ ๐๐๐๐ซ๐ง 2022.03.30.์ (0) | 2022.03.30 |
๋๊ธ