๊ฐœ๋ฐœ์ž HOON
๐Ÿ› HOON DEVLog
๊ฐœ๋ฐœ์ž HOON
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ˜Ž ์ „์ฒด ์นดํ…Œ๊ณ ๋ฆฌ (137)
    • ๐Ÿ“ ์‹ ์ž… ์ธํ„ฐ๋ทฐ ์ค€๋น„ (7)
    • ๐Ÿฆ” ์ทจ์—…์ค€๋น„ ๊ธฐ๋ก (7)
    • โ˜• ์ž๋ฐ” : JAVA (5)
    • ๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS (80)
    • ๐ŸŒฑ ๋ฐฑ์—”๋“œ : Backend (13)
    • ๐Ÿงช ์ปดํ“จํ„ฐ๊ณผํ•™ : CS (11)
    • ๐Ÿ—‚ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : DB (1)
    • ๐Ÿƒ‍โ™‚๏ธ DEVLOG (8)
    • โš™๏ธ Trouble Shooting (5)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • GitHub
  • Resume

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๊ฐœ๋ฐœ์ž HOON

๐Ÿ› HOON DEVLog

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 2๊ฐœ ์ดํ•˜๋กœ ๋‹ค๋ฅธ ๋น„ํŠธ (level2, python)
๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 2๊ฐœ ์ดํ•˜๋กœ ๋‹ค๋ฅธ ๋น„ํŠธ (level2, python)

2022. 9. 19. 22:47

๋ฌธ์ œ ์„ค๋ช…

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

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

 

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

  • f(2) = 3 ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ์™€ ๊ฐ™์ด 2๋ณด๋‹ค ํฐ ์ˆ˜๋“ค ์ค‘์—์„œ ๋น„ํŠธ๊ฐ€ ๋‹ค๋ฅธ ์ง€์ ์ด 2๊ฐœ ์ดํ•˜์ด๋ฉด์„œ ์ œ์ผ ์ž‘์€ ์ˆ˜๊ฐ€ 3์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • f(7) = 11 ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ์™€ ๊ฐ™์ด 7๋ณด๋‹ค ํฐ ์ˆ˜๋“ค ์ค‘์—์„œ ๋น„ํŠธ๊ฐ€ ๋‹ค๋ฅธ ์ง€์ ์ด 2๊ฐœ ์ดํ•˜์ด๋ฉด์„œ ์ œ์ผ ์ž‘์€ ์ˆ˜๊ฐ€ 11์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

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


์ œํ•œ์‚ฌํ•ญ
  • 1 ≤ numbers์˜ ๊ธธ์ด ≤ 100,000
  • 0 ≤ numbers์˜ ๋ชจ๋“  ์ˆ˜ ≤ 1015

์ž…์ถœ๋ ฅ ์˜ˆ

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

 

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ๋ฌธ์ œ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ’€์ด ์ฝ”๋“œ

def solution(numbers):
    answer = []
    for num in numbers:
        temp = bin(num)[2:]
        if temp[-1] == '0':
            answer.append(num+1)
        else:
            idx = 0
            for i in range(len(temp)-1, -1, -1):
                if temp[i] != '1':
                    idx = i
                    break
            if idx == 0:
                temp = '10' + temp[1:]
                answer.append(int(temp, 2))
            else:
                temp = temp[:idx] + '10' + temp[idx+2:]
                answer.append(int(temp, 2))
                
    return answer

์šฐ์„ , ๋ธŒ๋ฃจํŠธํฌ์Šค ๋ฐฉ์‹์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

์ฃผ์–ด์ง€๋Š” ์ˆซ์ž๋Š” 100,000๊ฐœ์ด๋ฉฐ, ํ˜„์žฌ ์ˆซ์ž๋กœ๋ถ€ํ„ฐ 1์”ฉ ์˜ฌ๋ ค๊ฐ€๋ฉฐ ์กฐ๊ฑด์— ๋งž๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ์—๋Š”

numbers์— ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋Š” 10์˜ 15์Šน๊นŒ์ง€์ด๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๋ฉด์—์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๋ฅผ ๋ฒ—์–ด๋‚  ์ˆ˜ ์—†๋‹ค.

 

์ด๋Ÿด๋•Œ๋Š” ํŒจํ„ด์„ ์ฐพ์•„๋‚ด์•ผ ํ•œ๋‹ค. ์„ธ ๊ฐ€์ง€ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž.

1) 1011 - 1100 - 1101

2) 10111 - 11000 - 11001 - 11010 - 11011

3) (0)11 - 100 - 101

 

์ฒซ ๋ฒˆ์งธ์™€ ๋‘ ๋ฒˆ์งธ๋Š” 0์ด ์˜ค๋ฅธ์ชฝ ๋ ์ž๋ฆฌ๊ฐ€ ์•„๋‹Œ, ์ค‘๊ฐ„์— ์œ„์น˜ํ•œ ๊ฒฝ์šฐ์ด๋‹ค.

์กฐ๊ฑด์— ๋งž๋Š” ์ˆ˜๋ฅผ ์ฐพ์•„๋ณด๋ฉด, ์ฒซ ๋ฒˆ์งธ๋Š” 1011 - 1101, ๋‘ ๋ฒˆ์งธ๋Š” 10111 - 11011์ด๋‹ค.

์ž˜ ๋ณด๋ฉด, 0์ด ํ•œ ์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

์„ธ ๋ฒˆ์งธ์˜ ๊ฒฝ์šฐ, ์ฃผ์–ด์ง„ ์ˆซ์ž๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ–ˆ์„ ๋•Œ ๋ชจ๋‘ 1๋กœ ์ฐจ ์žˆ๋Š” ๊ฒฝ์šฐ๋‹ค.

์ด ๊ฒฝ์šฐ๋„, ์•ž์— 0๋น„ํŠธ๋ฅผ ๋„ฃ๊ณ , 0์„ ํ•œ ์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ค๋ฉด ๋œ๋‹ค.

 

์˜ˆ์‹œ์— ๋‚˜์˜ค์ง€ ์•Š์•˜์ง€๋งŒ, ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ๋น„ํŠธ๊ฐ€ 0์ด๋ผ๋ฉด ๊ทธ๋ƒฅ 1์„ ๋”ํ•˜๋ฉด ๋œ๋‹ค.

์ด ๋…ผ๋ฆฌ์— ๋งž๊ฒŒ ์ฝ”๋”ฉ์„ ํ•˜๋ฉด ๋œ๋‹ค.

 

python์˜ bin ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์‰ฝ๊ฒŒ 10์ง„์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฆฌํ„ด ๊ฐ’์€ ๋ฌธ์ž์—ด๋กœ, '0bxxxxx' ๊ผด๋กœ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์—, ์•ž์˜ 0b๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด ์Šฌ๋ผ์ด์‹ฑ์œผ๋กœ [2:] ๋ถ€ํ„ฐ ์‚ฌ์šฉํ•œ๋‹ค.

 

์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ ์™ผ์ชฝ์œผ๋กœ ๋น„ํŠธ๋ฅผ ํ™•์ธํ•˜๋ฉฐ, '1'์ด ์•„๋‹Œ ๋น„ํŠธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

'1'์ด ์•„๋‹Œ ๋น„ํŠธ, ์ฆ‰ '0'์ธ ๋น„ํŠธ๊ฐ€ ์กด์žฌํ•˜๋ฉด '0'๋น„ํŠธ ์™ผ์ชฝ์€ ๋ชจ๋‘ ์‚ด๋ฆฌ๊ณ , '10'์œผ๋กœ 0๊ณผ 1์˜ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๊ณ , ๋‘ ์นธ์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„์„ ์‚ด๋ฆฐ๋‹ค.

 

'0'์ธ ๋น„ํŠธ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด, ๊ฐ€์žฅ ์•ž์ด '10'์œผ๋กœ ๋ฐ”๋€Œ๊ณ , ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ์‚ด๋ฆฐ๋‹ค.

์ตœ์ข… answer์— ๋„ฃ์„ ๋•Œ๋Š”, 2์ง„์ˆ˜๋ฅผ 10์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— int ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

int์˜ parameter์ค‘์—๋Š”, ์ง„์ˆ˜๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. int(๋ฌธ์ž์—ด, ๋ฌธ์ž์—ด์ด ํ‘œํ˜„ํ•˜๊ณ  ์žˆ๋Š” ์ง„์ˆ˜)๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด N์ง„์ˆ˜๋ฅผ 10์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋™์ผ์กฐ๊ฑด (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์žฅ ํฐ ์ˆ˜ (level2, python)  (1) 2022.09.19
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 2xn ํƒ€์ผ๋ง (level2, python)  (0) 2022.09.19
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹ค๋ฆฌ๋ฅผ ์ง€๋‚˜๋Š” ํŠธ๋Ÿญ (level2, python)  (0) 2022.09.19
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฒŒ์ž„ ๋งต ์ตœ๋‹จ๊ฑฐ๋ฆฌ (level2, python)  (1) 2022.09.13
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ชจ์Œ์‚ฌ์ „ (level2, python)  (1) 2022.09.13
    '๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์žฅ ํฐ ์ˆ˜ (level2, python)
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 2xn ํƒ€์ผ๋ง (level2, python)
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹ค๋ฆฌ๋ฅผ ์ง€๋‚˜๋Š” ํŠธ๋Ÿญ (level2, python)
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฒŒ์ž„ ๋งต ์ตœ๋‹จ๊ฑฐ๋ฆฌ (level2, python)
    ๊ฐœ๋ฐœ์ž HOON
    ๊ฐœ๋ฐœ์ž HOON
    ์ข‹์€ ๋ฐฑ์—”๋“œ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ก์„ ๋ชจ์•˜์Šต๋‹ˆ๋‹ค. # ์ฃผ๋‹ˆ์–ด # ๋ฐฑ์—”๋“œ # ๊ฐœ๋ฐœ์ž

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”