https://www.acmicpc.net/problem/1946
#1946 ์ ์ ์ฌ์
์ ์ ์ฌ์์ด ๋๊ณ ์ถ์ ๋ง์์ ์ ๋ชฉ๋ณด๊ณ ํผ ๋ฌธ์ !
1946๋ฒ: ์ ์ ์ฌ์
์ฒซ์งธ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T(1 ≤ T ≤ 20)๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ์ฒซ์งธ ์ค์ ์ง์์์ ์ซ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ ์ค์๋ ๊ฐ๊ฐ์ ์ง์์์ ์๋ฅ์ฌ์ฌ ์ฑ
www.acmicpc.net
๐์ฒ์์ ํผ ํผ ์ฝ๋ -- ์๊ฐ์ด๊ณผ...
import sys
T = int(sys.stdin.readline())
for tc in range(T):
N = int(sys.stdin.readline())
arr = [list(map(int,sys.stdin.readline().split())) for _ in range(N)]
arr.sort()
fail = []
def employment(interview,idx):
global fail
for j in range(idx,N):
if arr[j][1]>interview:
if arr[j][1] not in fail:
fail.append(arr[j][1])
for i in range(N):
employment(arr[i][1],i)
print(N-len(fail))
import sys
T = int(sys.stdin.readline())
for tc in range(T):
N = int(sys.stdin.readline())
arr = [list(map(int,sys.stdin.readline().split())) for _ in range(N)]
arr.sort()
fail=set()
def employment(interview,idx):
global fail
for j in range(idx,N):
if arr[j][1]>interview:
fail.add(arr[j][1])
for i in range(N):
employment(arr[i][1],i)
print(N-len(fail))
๐ arr๋ฐฐ์ด์ sortํด์ฃผ๋ฉด 1๋ฒ ์ธ๋ฑ์ค๋ง ๋น๊ตํด์ ํ๋ฝ์๋ค์ ์๋ฅผ ๊ตฌํ ์ ์๋ค.
๐ ๋๋ ํจ์๋ฅผ ๋ง๋ค์ด์ ํจ์ ์ธ์๋ก interview ์ ์์ index๋ฅผ ๋ฃ์ด ๋ค์ ๊ฐ์ ๋น๊ตํด interview๋ณด๋ค ํฌ๋ค๋ฉด ํ๋ฝ์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ๋ฃ๋ ์์ผ๋ก ํ๋ค. ์ด๋ ๊ฒ ํ๋ค๋ณด๋ฉด ์ค๋ณต์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ฒจ set์ ์ด์ฉํด ์ค๋ณต์ ์ ๊ฑฐํ๋ค.
๐ ํ์ง๋ง ๋ถํ์ํ ์ค๋ณต ๊ณผ์ ์ด ๋ง๊ณ ๊ฒฐ๊ตญ for๋ฌธ์์ 2์ค for๋ฌธ์ด ๋์ด ์๊ฐ๋ณต์ก๋ ๋ฉด์์ ์์ฒญ๋๊ฒ ์ํด์๋ค. ๊ทธ๋์ ์๊ฐ์ด๊ณผ๋ก ์ฑ์ ์ด ๋์ง ์์๋ค.
๐ํต๊ณผํ ์ฝ๋
import sys
T = int(sys.stdin.readline())
for tc in range(T):
N = int(sys.stdin.readline())
arr = [list(map(int,sys.stdin.readline().split())) for _ in range(N)]
#documnet์ ํ์ ๊ธฐ์ค์ผ๋ก sort
arr.sort()
hire=1 #arr[0][1]์ ํ์คํ ํฉ๊ฒฉ์๋๊น
#( document์ ํ์์ arr[0]๋ณด๋ค ์์ ์๋ ์๊ธฐ ๋๋ฌธ)
winner = arr[0][1]
for i in range(N):
#winner๋ณด๋ค ์์ผ๋ฉด ํฉ๊ฒฉ์
if arr[i][1]<winner:
winner=arr[i][1]
hire+=1
print(hire)
๐๋ถํ์ํ ์ฝ๋๋ฅผ ์ ๊ฑฐํ๊ณ winner๋ฅผ ๊ฐฑ์ ํด arr[i][1]์ ๋น๊ตํด์ฃผ๋ ๋ฐฉ๋ฒ์ ํํ๋ค.
๐์ด์ค for๋ฌธ์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์๊ฐ๋ณต์ก๋๋ฉด์์ ํจ์ฌ ํจ์จ์ ์ด๊ณ ๊ฐ๊ฒฐํ ์ฝ๋๋ก ๋ฐ๋์๋ค.
โ๊ด๋ จ ALGORITHM ์ด๋ก
2022.05.13 - [Problem Solving/ALGORITHM] - ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm)
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm)
๊ทธ๋ฆฌ๋(Greedy) ์๊ณ ๋ฆฌ์ฆ ๐๊ฐ๋ - ํ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ, ์ฌ๋ฌ ๊ฒฝ์ฐ ์ค ํ๋๋ฅผ ๊ฒฐ์ ํด์ผ ํ ๋ ๊ทธ ์๊ฐ์ ์ต์ ์ด๋ผ๊ณ ์๊ฐ๋๋ ๊ฒ์ ์ ํํด ๋๊ฐ๋ ๋ฐฉ์์ผ๋ก ์งํํ์ฌ ์ต์ข ์ ์ธ ํด๋ต์ ๋
luminous24.tistory.com
'Problem Solving > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[baekjoon]python #14494 ๋ค์ด๋๋ฏน์ด ๋ญ์์? (0) | 2022.05.18 |
---|---|
[baekjoon]python #14606 ํผ์ (Small) (0) | 2022.05.18 |
[baekjoon]python #2636 ์น์ฆ (0) | 2022.05.10 |
[baekjoon]python #2469 ์ฌ๋ค๋ฆฌ ํ๊ธฐ (0) | 2022.05.03 |
[baekjoon]python #2606 ๋ฐ์ด๋ฌ์ค (0) | 2022.05.02 |
๋๊ธ