https://school.programmers.co.kr/learn/courses/30/lessons/77885
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์ฐ์ ์ฒ์ ์ ์ถํ ์ฝ๋์ด๋ค.
def solution(numbers):
answer = []
for i in numbers:
j = i+1
while True:
num = bin(i^j)
if num.count("1") in [1,2]:
answer.append(j)
break
j += 1
return answer
์ด ์ฝ๋๋ก๋ ํ ์ผ 9, 10์์ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค.
i+1๋ถํฐ ์ซ์๋ค์ ์ฆ๊ฐ์์ผ์ฃผ๋ฉฐ ์ฐจ๋ก๋ก xor ์ฐ์ฐ์ ํ๊ณ , ๋ค๋ฅธ ๋นํธ ์๊ฐ 1๊ฐ ๋๋ 2๊ฐ๋ฉด ๊ทธ ์ซ์๋ฅผ ์ ํํด์ฃผ์๋ค.
์ํ๋ ์ซ์๋ฅผ ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ฐพ์๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ํฐ ์์์ ์๊ฐ์ด๊ณผ๊ฐ ๋ ๊ฒ ๊ฐ์๋ค.
์ด๋ค ๋ฐฉ๋ฒ์ด ์์๊น ๊ณ์ ๊ณ ๋ฏผํด๋ดค๋๋ฐ,
์ง์์ธ ๊ฒฝ์ฐ ๋จ์ํ 1์ ๋ํด์ค ์ซ์๊ฐ ์ ๋ต์ด๋ค ์ด์ ๋๊น์ง๋ฐ์ ์๊ฐ๋์ง ์์๋ค.
์ง๋ฌธ ๊ฒ์ํ์ ์ด๋ค ๋ถ์ด ์ข์ ๋ฐฉ๋ฒ์ ์ ์ด๋์ จ๊ธธ๋, ์ฐ์ ์ด๋๋ก ์ฝ๋๋ฅผ ์ง๋ดค๋ค.
ํ ์ ๊ฑฐ ๋ณด๊ณ ์ผ๋จ ์ ์งํ๊ฒ ์ด์ฌํ ๊ตฌํ ํด๋ดค๋ค.
def solution(numbers):
answer = []
for i in numbers:
if i%2 == 0:
answer.append(i+1)
else:
add = []
for j in bin(i)[::-1]:
if j == "0" or j=="b":
add.append("1")
break
add.append("0")
result = ''.join(reversed(add))
k = int(result,2)
answer.append(int(i) + k - k//2)
return answer
๋ถ์กฑํ์ง๋ง ์ด ์ฝ๋๋ก ํต๊ณผํ ์ ์์๋ค.
๋ค๋ฅธ ์ฌ๋๋ค ํ์ด๋ฅผ ์ฌ๋ฌ ๊ฐ ๊ตฌ๊ฒฝํ๋๋ฐ ๋ค๋ค ์ฒ์ฌ์ธ ๊ฒ ๊ฐ๋ค..
์ ์ด๋ฐ ๋ฌธ์ ๋ ์ํ๋จธ๋ฆฌ ์์ผ๋ฉด ์๋ธ ํ๊ธฐ ํ๋ค ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๊ฐ์ฅ ์์ ์๋ ํ์ด์์ ๋์๋ฐ์๋ ๋๊ธ
๋์ค์ ์ด ๋ฌธ์ ๋ค์ ํ ๋ ๋ ํ์ํ๋ฉด ๋ณด๋ ค๊ณ ์บก์ฒํด๋
ํ ์ด๋ ต๋ค
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > -' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค]ํ๋ฐฐ์์ (0) | 2023.06.23 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค]ํ์ผ๋ช ์ ๋ ฌ (0) | 2023.06.23 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํ์ฑํ ๋ฐฉ (0) | 2023.06.10 |
[ํ๋ก๊ทธ๋๋จธ์ค] k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2023.06.09 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๊ฒ ๋๋ฒ (0) | 2023.06.08 |