๐Ÿ’ป์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œํ’€์ด23

์ง€๋ฏผ์„œยท2023๋…„ 3์›” 16์ผ
0

coding test

๋ชฉ๋ก ๋ณด๊ธฐ
22/30

Chapter12. ๊ตฌํ˜„

[๋ฌธ์ œ53] 2๊ฐœ ์ดํ•˜๋กœ ๋‹ค๋ฅธ ๋น„ํŠธ - Level2

์–‘์˜ ์ •์ˆ˜ x์— ๋Œ€ํ•œ ํ•จ์ˆ˜ f(x)๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • x๋ณด๋‹ค ํฌ๊ณ  x์™€ ๋น„ํŠธ๊ฐ€ 1~2๊ฐœ ๋‹ค๋ฅธ ์ˆ˜๋“ค ์ค‘์—์„œ ์ œ์ผ ์ž‘์€ ์ˆ˜

์˜ˆ๋ฅผ ๋“ค์–ด,

  • f(2) = 3์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ์™€ ๊ฐ™์ด 2๋ณด๋‹ค ํฐ ์ˆ˜๋“ค ์ค‘์—์„œ ๋น„ํŠธ๊ฐ€ ๋‹ค๋ฅธ ์ง€์ ์ด 2๊ฐœ ์ดํ•˜์ด๋ฉด์„œ ์ œ์ผ ์ž‘์€ ์ˆ˜๊ฐ€ 3์ด๊ธฐ ๋•Œ๋ฌธ
์ˆ˜๋น„ํŠธ๋‹ค๋ฅธ ๋น„ํŠธ์˜ ๊ฐœ์ˆ˜
2000...0010-
3000...00111
  • f(7) = 11์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ์™€ ๊ฐ™์ด 7๋ณด๋‹ค ํฐ ์ˆ˜๋“ค ์ค‘์—์„œ ๋น„ํŠธ๊ฐ€ ๋‹ค๋ฅธ ์ง€์ ์ด 2๊ฐœ ์ดํ•˜์ด๋ฉด์„œ ์ œ์ผ ์ž‘์€ ์ˆ˜๊ฐ€ 11์ด๊ธฐ ๋•Œ๋ฌธ
์ˆ˜๋น„ํŠธ๋‹ค๋ฅธ ๋น„ํŠธ์˜ ๊ฐœ์ˆ˜
7000...0111-
8000...10004
9000...10013
10000...10103
11000...10112

์ •์ˆ˜๋“ค์ด ๋‹ด๊ธด ๋ฐฐ์—ด numbers๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. numbers์˜ ๋ชจ๋“  ์ˆ˜๋“ค์— ๋Œ€ํ•˜์—ฌ ๊ฐ ์ˆ˜์˜ f ๊ฐ’์„ ๋ฐฐ์—ด์— ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด์•„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

[์ œํ•œ์‚ฌํ•ญ]

  • 1 =< numbers์˜ ๊ธธ์ด =< 100,000
  • 0 =< numbers์˜ ๋ชจ๋“  ์ˆ˜ =< 1015

[์ฝ”๋“œ์ž‘์„ฑ]

1. f(x) ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ

def f(x):
	if x % 2 == 0: return x + 1
    
    x = f'0{bin(x)[:2]}'
    x = f"{x[:x.rindex('0')]}10{x[x.rindex('0') + 2:]}"
    return int(x, 2)

2. ๋‹จ์–ด๋ฅผ ๋ฐ›์•„ ํŠธ๋ผ์ด์— ๋ฐ์ดํ„ฐ ์ฑ„์šฐ๊ธฐ

def solution(numbers):
	return [f(number) for number in numbers]

[์ „์ฒด์ฝ”๋“œ]

def f(x):
	if x % 2 == 0: return x + 1
    
    x = f'0{bin(x)[:2]}'
    x = f"{x[:x.rindex('0')]}10{x[x.rindex('0') + 2:]}"
    return int(x, 2)
    
def solution(numbers):
	return [f(number) for number in numbers]
profile
๐Ÿ’ป + ๐ŸŽฅ

0๊ฐœ์˜ ๋Œ“๊ธ€