๋ฉ๋ชจ๋ฆฌ ์์ ์์ ์ฐ์ ๋ฐฐ์น ๊ตฌ์กฐ๋ผ k๋ฒ์งธ ์์ ์์น๋ฅผ ๋ฐ๋ก ๊ณ์ฐํ ์ ์๋ค. ์๊ฐ ๋ณต์ก๋๋ O(1)
์ถ๊ฐ์ ์ผ๋ก ์๋ชจ๋๋ ๋ฉ๋ชจ๋ฆฌ ์์ด ๊ฑฐ์ ์๋ค.
๋งจ ๋ค๊ฐ ์๋ ์์์ ์์น์ ์์๋ฅผ ์ถ๊ฐํ๋ ๊ณผ์ ์ O(n). ์์๋ฅผ ์ถ๊ฐํ๊ณ ๋๋จธ์ง ๋ฐ์ดํฐ๋ค์ ๋ค๋ก ํ ์นธ์ฉ ๋ฏธ๋ค์ผํ๊ธฐ ๋๋ฌธ์.
์๋ฅผ ๋ค์ด ๊ทธ๋ํ๋ฅผ ํํํ ๋ ๋ฐฐ์ด์ ํ์ฉํ๋ฉด ์์ ์ ๊ทผ์ ํ ์ ์์ผ๋ฏ๋ก ๊ฐ์ ์ฌ๋ถ๋ ์๊ฐ ๋ณต์ก๋ O(1)๋ก ํ๋จํ ์ ์\๋ค. ํ์ง๋ง ๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ถฉ๋ถํ ํ๋ณดํด์ผ ํ๋ ๋จ์ ๋ ์๋ค.
์์ ์ ๊ทผ์ด๋ผ๋ ํน์ง์ด ์์ด ๋ฐ์ดํฐ์ ๋น๋ฒํ๊ฒ ์ ๊ทผํ๋ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋ฐ์ ๊ฐ๋ฅ.
์ ์ ๋ฐฐ์ด์ ์ ๋ ฌํด์ ๋ฐํํ๋ solution( ) ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ์ฝ์กฐ๊ฑด
from sys import stdin, stdout
def solution(arr):
arr.sort()
print(arr)
input = stdin.readline
arr=list(map(int,input().split()))
solution(arr)
sort()๋ ์๊ฐ ๋ณต์ก๋๊ฐ NlogN์ด๋ค. ๋ฐ์ดํฐ ๊ฐ์๋ ์ต๋ 105๊ฐ์ด๊ธฐ ๋๋ฌธ์, O(n2)์ธ ๋ฒ๋ธ ์ ๋ ฌ์ ์ฌ์ฉํ ์ ์๋ค.
์ ์ ๋ฐฐ์ด์ ํ๋ ๋ฐ์ต๋๋ค. ๋ฐฐ์ด์ ์ค๋ณต๊ฐ์ ์ ๊ฑฐํ๊ณ ๋ฐฐ์ด ๋ฐ์ดํฐ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ ๋ฐํํ๋ solution( ) ํจ์๋ฅผ ๊ตฌํํ์ธ์.
์ ์ฝ์กฐ๊ฑด
from sys import stdin, stdout
def solution(arr):
arr=list(set(arr))
arr.sort(reverse=True)
print(arr)
input = stdin.readline
arr=list(map(int,input().split()))
solution(arr)
๋ง์ฐฌ๊ฐ์ง๋ก sort()๋ ์๊ฐ ๋ณต์ก๋๊ฐ NlogN์ด๋ค. ๋ฐ์ดํฐ ๊ฐ์๋ ์ต๋ 1000๊ฐ์ด๊ธฐ ๋๋ฌธ์, O(n2)์ธ ๋ฒ๋ธ ์ ๋ ฌ์ ์ฌ์ฉํ ์ ์๋ค.
set()ํจ์๋ก O(n)์ ์๊ฐ ๋ณต์ก๋๋ก ์ค๋ณต์ ์ ๊ฑฐํ ์ ์๋ค.
ํ์ด์ฌ์๋ ์ฝ๋ฉ ํ ์คํธ์ ์ ์ฉํ ํจ์๊ฐ ๋ง๋ค. ๊ตณ์ด ์ง์ ์์ฑํ๋ ค ํ์ง ๋ง๋ผ
์ ์ ๋ฐฐ์ด numbers๊ฐ ์ฃผ์ด์ง๋๋ค. numbers์์ ์๋ก ๋ค๋ฅธ ์ธ๋ฑ์ค์ ์๋ 2๊ฐ์ ์๋ฅผ ๋ฝ์ ๋ํด ๋ง๋ค ์ ์๋ ๋ชจ๋ ์๋ฅผ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ด์ ๋ฐํํ๋ solution( ) ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ์ฝ์กฐ๊ฑด
from sys import stdin, stdout
def solution(arr):
ans=[]
for i in range(len(arr)):
for j in range(i+1,len(arr)):
ans.append(arr[i]+arr[j])
ans=sorted(list(set(ans)))
print(ans)
input = stdin.readline
arr=list(map(int,input().split()))
solution(arr)
์ํฌ์๋ ์ํ์ ํฌ๊ธฐํ ์ฌ๋์ ์ค์ธ ํํ์ ๋๋ค. ์ํฌ์ ์ผ์ธ๋ฐฉ์ ๋ชจ์๊ณ ์ฌ์ ์ํ ๋ฌธ์ ๋ฅผ ์ ๋ถ ์ฐ์ผ๋ ค ํฉ๋๋ค. ์ํฌ์๋ 1๋ฒ ๋ฌธ์ ๋ถํฐ ๋ง์ง๋ง ๋ฌธ์ ๊น์ง ๋ค์๊ณผ ๊ฐ์ด ์ฐ์ต๋๋ค.
์ ์ฝ์กฐ๊ฑด
from sys import stdin
def solution(answers):
scores=[0]*3
patterns=[
[1,2,3,4,5],
[2,1,2,3,2,4,2,5],
[3,3,1,1,2,2,4,4,5,5]
]
for i, answer in enumerate(answers):
for j, pattern in enumerate(patterns):
if answer==pattern[i%len(pattern)]:
scores[j]+=1
max_score=max(scores)
result=[]
for i,score in enumerate(scores):
if score==max_score:
result.append(i+1)
return result
input = stdin.readline
answers=list(map(int,input().split()))
solution(answers)
enumerate๋ก ์ํํ๋ค.