Coding/Code in the Morning

211228_Code in the morning

๊น€์œ ๋‹ˆ์ฝ˜ 2021. 12. 28. 14:59

Code in the morning, ๋งค์ผ ์•„์นจ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’‰๋‹ˆ๋‹ค. 

๐Ÿ’ฌ ๋ฌธ์ œ ์„ค๋ช…: ์ž์—ฐ์ˆ˜ ๋’ค์ง‘์–ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ

์ž์—ฐ์ˆ˜ n์„ ๋’ค์ง‘์–ด ๊ฐ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด n์ด 12345์ด๋ฉด [5,4,3,2,1]์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

 

 

๐Ÿ“ ์ œํ•œ ์‚ฌํ•ญ

  • ์ž์—ฐ์ˆ˜ n์„ ๋’ค์ง‘์–ด ๊ฐ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด n์ด 12345์ด๋ฉด [5,4,3,2,1]์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

 

 

๐Ÿ’ก ๋‚˜์˜ ํ’€์ด 

def solution(n):
    answer = []
    lst = list(str(n))
    lst.sort(reverse = True)
    answer = list(map(int,lst))
    return answer

 

 

---- ํ‹€๋ ธ๋Š”๋ฐ ์™œ ํ‹€๋ ธ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค? ใ… ใ… -- 

 

 

* ์•Œ๊ณ ๊ฐ€๋ฉด ์ข‹์„ ๊ฒƒ 

Python Array ์šฉ๋ฒ•

Arr[์—ฌ๊ธฐ๋ถ€ํ„ฐ : ์—ฌ๊ธฐ๊นŒ์ง€ : ์นธ ๊ฐ„๊ฒฉ] 

>> arr = range(10)
>> arr
[0,1,2,3,4,5,6,7,8,9]
>> arr[::2] # ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋‘ ์นธ ๊ฐ„๊ฒฉ์œผ๋กœ
[0,2,4,6,8]
>> arr[1::2] # index 1 ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋‘ ์นธ ๊ฐ„๊ฒฉ์œผ๋กœ
[1,3,5,7,9]
>> arr[::-1] # ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ -1์นธ ๊ฐ„๊ฒฉ์œผ๋กœ ( == ์—ญ์ˆœ์œผ๋กœ)
[9,8,7,6,5,4,3,2,1,0]
>> arr[::-2] # ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ -2์นธ ๊ฐ„๊ฒฉ์œผ๋กœ ( == ์—ญ์ˆœ, ๋‘ ์นธ ๊ฐ„๊ฒฉ์œผ๋กœ)
[9,7,5,3,1]
>> arr[3::-1] # index 3 ๋ถ€ํ„ฐ ๋๊นŒ์ง€ -1์นธ ๊ฐ„๊ฒฉ์œผ๋กœ ( == ์—ญ์ˆœ์œผ๋กœ)
[3,2,1,0]
>> arr[1:6:2] # index 1 ๋ถ€ํ„ฐ index 6 ๊นŒ์ง€ ๋‘ ์นธ ๊ฐ„๊ฒฉ์œผ๋กœ
[1,3,5]

* map ํ•จ์ˆ˜ 

ํŒŒ์ด์ฌ์˜ ๋‚ด์žฅ ํ•จ์ˆ˜์ธ map()๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๋‹ค๋ฅธ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” list๋‚˜ tuple์„ ๋Œ€์ƒ์œผ๋กœ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๊ฐ„๋‹จํ•œ๋ฐ์š”… ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

map(๋ณ€ํ™˜ ํ•จ์ˆ˜, ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ)

map() ํ•จ์ˆ˜๋Š” ๋‘๋ฒˆ์งธ ์ธ์ž๋กœ ๋„˜์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ์— ๋ณ€ํ™˜ ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ’ก ๋‹ค๋ฅธ ํ•ด์„ค

def solution(n): 
    answer = []
    reverseN = list(str(n))[::-1]
    answer = list(map(int,reverseN))
    return answer

 

๐Ÿ‘‰๐Ÿป ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ 

 

์ฐธ๊ณ  ๋งํฌ

์ฐธ๊ณ  ๋งํฌ 

 

 


Code in the morning, ๋งค์ผ ์•„์นจ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’‰๋‹ˆ๋‹ค. 

๐Ÿ’ฌ ๋ฌธ์ œ ์„ค๋ช…: ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ ๊ฐ€๋ฆฌ๊ธฐ

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ชจ๋ฐ”์ผ์€ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ๊ณ ์ง€์„œ๋ฅผ ๋ณด๋‚ผ ๋•Œ ๊ณ ๊ฐ๋“ค์˜ ์ „ํ™”๋ฒˆํ˜ธ์˜ ์ผ๋ถ€๋ฅผ ๊ฐ€๋ฆฝ๋‹ˆ๋‹ค.
์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋ฌธ์ž์—ด phone_number๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ „ํ™”๋ฒˆํ˜ธ์˜ ๋’ท 4์ž๋ฆฌ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์ˆซ์ž๋ฅผ ์ „๋ถ€ *์œผ๋กœ ๊ฐ€๋ฆฐ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

๐Ÿ“ ์ œํ•œ ์‚ฌํ•ญ

  • s๋Š” ๊ธธ์ด 4 ์ด์ƒ, 20์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

 

 

๐Ÿ’ก ๋‚˜์˜ ํ’€์ด 

def solution(phone_number):
    answer = ''
    num = str(phone_number)
    answer = '*' * len(num[:-4]) + num[-4:]
    return answer

string์œผ๋กœ ๊ผญ ์•ˆ๋ฐ”๊ฟ”๋„ ๋˜๋Š”๊ตฌ๋‚˜.. 

len์„ ๊ตฌํ•  ๋•Œ, ๊ผญ ์—ฌ๊ธฐ๋ถ€ํ„ฐ ์—ฌ๊ธฐ๊นŒ์ง€ ์ˆซ์ž ์„ธ๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ทธ๋ƒฅ ๋’ท ์ž๋ฆฌ 4๊ฐœ ๋นผ๋„ ๋˜๋Š”๊ฑด๋ฐ ์ด ๊ฐ„๋‹จํ•œ๊ฒŒ ์™œ ์ƒ๊ฐ์ด ์•ˆ๋‚ฌ์„๊นŒ

๊ทธ๋ž˜๋„ ์ฒ˜์Œ๋ณด๋‹จ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„ ๊ธฐ๋ถ„์ด ์ข‹๋‹ค. 

 

๐Ÿ’ก ๋‹ค๋ฅธ ํ•ด์„ค

def hide_numbers(s):
    return "*"*(len(s)-4) + s[-4:]

 

 

๐Ÿ‘‰๐Ÿป ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ 

 


 

 

Code in the morning, ๋งค์ผ ์•„์นจ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’‰๋‹ˆ๋‹ค. 

๐Ÿ’ฌ ๋ฌธ์ œ ์„ค๋ช…: K๋ฒˆ์งธ์ˆ˜

๋ฐฐ์—ด array์˜ i๋ฒˆ์งธ ์ˆซ์ž๋ถ€ํ„ฐ j๋ฒˆ์งธ ์ˆซ์ž๊นŒ์ง€ ์ž๋ฅด๊ณ  ์ •๋ ฌํ–ˆ์„ ๋•Œ, k๋ฒˆ์งธ์— ์žˆ๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด array๊ฐ€ [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3์ด๋ผ๋ฉด

array์˜ 2๋ฒˆ์งธ๋ถ€ํ„ฐ 5๋ฒˆ์งธ๊นŒ์ง€ ์ž๋ฅด๋ฉด [5, 2, 6, 3]์ž…๋‹ˆ๋‹ค.
1์—์„œ ๋‚˜์˜จ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋ฉด [2, 3, 5, 6]์ž…๋‹ˆ๋‹ค.
2์—์„œ ๋‚˜์˜จ ๋ฐฐ์—ด์˜ 3๋ฒˆ์งธ ์ˆซ์ž๋Š” 5์ž…๋‹ˆ๋‹ค.
๋ฐฐ์—ด array, [i, j, k]๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง„ 2์ฐจ์› ๋ฐฐ์—ด commands๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, commands์˜ ๋ชจ๋“  ์›์†Œ์— ๋Œ€ํ•ด ์•ž์„œ ์„ค๋ช…ํ•œ ์—ฐ์‚ฐ์„ ์ ์šฉํ–ˆ์„ ๋•Œ ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

 

๐Ÿ“ ์ œํ•œ ์‚ฌํ•ญ

  • array์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 100 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • array์˜ ๊ฐ ์›์†Œ๋Š” 1 ์ด์ƒ 100 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • commands์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 50 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • commands์˜ ๊ฐ ์›์†Œ๋Š” ๊ธธ์ด๊ฐ€ 3์ž…๋‹ˆ๋‹ค.

 

 

๐Ÿ’ก ๋‚˜์˜ ํ’€์ด 

def solution(array, commands):
    answer = []
    #1. commands์— ์žˆ๋Š” command ์ถ”์ถœ
    
    for command in commands: 
        
    #2. ๋ฌธ์ž ์Šฌ๋ผ์ด์‹ฑ     
        new_array = array[ command[0] -1 : command[1] ]
    
    #3. ์ •๋ ฌ   
        new_array.sort()
        
    #4. ์ˆซ์ž ์ถ”์ถœ   
        number = new_array[command[2]-1]
        answer.append(number)
    return answer

 

 

๐Ÿ’ก ๋‹ค๋ฅธ ํ•ด์„ค

def solution(array, commands):
    answer = []
    for command in commands:
        i,j,k = command
        answer.append(list(sorted(array[i-1:j]))[k-1])
    return answer

 

commands๊ฐ€ ์„ธ ์ˆซ์ž๋กœ ๊ตฌ์„ฑ์ด ๋˜์–ด์žˆ๋‹ค๋ฉด,

์ด๋ ‡๊ฒŒ i, j, k ๋กœ ๋ฐ”๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ตฌ๋‚ญ.... ๋„˜ ์‹ ๊ธฐ.. 

 

ํŒŒ์ด์ฌ์€ ์•Œ๋ฉด ์•Œ์ˆ˜๋ก ์ •๋ง ์ธ๊ฐ„์˜ ์–ธ์–ด๋ฅผ ๋‹ฎ์•„์žˆ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•œ๋‹ค. 

๊ฐ™์€ ๋ง๋„ ์“ฐ๋Š” ๋ฌธ์žฅ์— ๋”ฐ๋ผ ๊ทธ ๋ง์˜ ๋ง›์ด ๋‹ฌ๋ผ์ง€๋“ฏ, ์ฝ”๋“œ๋„ ๊ทธ ๋ง›์ด ์žˆ๋‹ค,,

 

๋ฌผ๋ก  ๋‚˜๋Š” ์ง€๊ธˆ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ๋งž์ถ”๋Š” ๊ฒƒ๋ณด๋‹ค ์ •์งํ•œ ์ฝ”๋“œ๋ฅผ ๋งž์ถฐ๊ฐ€๋Š”๋ฐ ๋” ํฐ ํฌ์—ด์„ ๋Š๋ผ๊ธด ํ•˜์ง€๋งŒ. 

 

 

๐Ÿ‘‰๐Ÿป ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ 

 

 


Code in the morning, ๋งค์ผ ์•„์นจ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’‰๋‹ˆ๋‹ค. 

๐Ÿ’ฌ ๋ฌธ์ œ ์„ค๋ช…: ํ•˜์ƒค๋“œ ์ˆ˜

์–‘์˜ ์ •์ˆ˜ x๊ฐ€ ํ•˜์ƒค๋“œ ์ˆ˜์ด๋ ค๋ฉด x์˜ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์œผ๋กœ x๊ฐ€ ๋‚˜๋ˆ„์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 18์˜ ์ž๋ฆฟ์ˆ˜ ํ•ฉ์€ 1+8=9์ด๊ณ , 18์€ 9๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฏ€๋กœ 18์€ ํ•˜์ƒค๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž์—ฐ์ˆ˜ x๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ x๊ฐ€ ํ•˜์ƒค๋“œ ์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

 

๐Ÿ“ ์ œํ•œ ์‚ฌํ•ญ

  • x๋Š” 1 ์ด์ƒ, 10000 ์ดํ•˜์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

 

 

๐Ÿ’ก ๋‚˜์˜ ํ’€์ด 

def solution(x):
    divisor = 0
    for i in range (0, len(str(x))):
        divisor += int(str(x)[i])
    if (x % divisor == 0):
        return True
    else: 
        return False

 

1. divisor๋ฅผ ๋จผ์ € ๊ตฌํ•œ๋‹ค.

    x๋ฅผ ์šฐ์„  string์œผ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๊ฐ ์ˆซ์ž๋ฅผ ๋”ํ•œ ๊ฐ’์„ divisor ๊ฐ’์„ ๊ตฌํ•จ

2. ๋‚˜๋จธ์ง€๊ฐ€ 0์ธ์ง€ ํ™•์ธํ•œ๋‹ค

 

์ด๊ฑฐ ๋ง๊ณ  10์˜์ž๋ฆฌ ๋‚˜๋ˆ—์…ˆ์œผ๋กœ๋„ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด, ๋‘ ๋ฒˆ์งธ ํ’€์ด์— ๋„์ „! ํ•˜์˜€๋‹ค๊ฐ€ ์™œ ์•ˆ๋˜๋Š”์ง€ ์ดํ•ด๊ฐ€ ์•ˆ๋˜๋Š” ์ƒํ™ฉ์— ์ง๋ฉด...์™œ์ผ๊นŒ,,,??? ๋…ผ๋ฆฌ์ ์œผ๋กœ๋Š” ๋งž๋Š”๋ฐ..? 

โŒ ํ‹€๋ฆฐ ์ฝ”๋“œ โŒ

def solution(x):
    divisor = 0
    # x ๋Š” ๋ช‡์ž๋ฆฌ ์ˆ˜? 
    for i in range(0, len(str(x))):
        
        if (10**(len(str(x))-1-i))>=1:
            quotient = x // 10**(len(str(x))-1-i)
            x = x - (quotient * 10**(len(str(x))-1-i))
        elif (10**(len(str(x))-1-i))<1:
            quotient = x 
        divisor += quotient
    
    if (x % divisor == 0):
        return True
    else: 
        return False

 

 

๐Ÿ’ก ๋‹ค๋ฅธ ํ•ด์„ค

def Harshad(n):
    # n์€ ํ•˜์ƒค๋“œ ์ˆ˜ ์ธ๊ฐ€์š”?
    return n % sum([int(c) for c in str(n)]) == 0

์ €๋Ÿฐ์‹์œผ๋กœ ์“ฐ๋Š”๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๊ตฌ๋‚˜.. c๋Š” ๋”ฐ๋กœ ๋ช…์‹œ ์•ˆํ•ด์ค˜๋„ ๋˜๋Š”๊ฑด๊ฐ€..? 

์‹ ๊ธฐํ•˜๋„ค 

๐Ÿ‘‰๐Ÿป ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ•˜์ƒค๋“œ ์ˆ˜

์–‘์˜ ์ •์ˆ˜ x๊ฐ€ ํ•˜์ƒค๋“œ ์ˆ˜์ด๋ ค๋ฉด x์˜ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์œผ๋กœ x๊ฐ€ ๋‚˜๋ˆ„์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 18์˜ ์ž๋ฆฟ์ˆ˜ ํ•ฉ์€ 1+8=9์ด๊ณ , 18์€ 9๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฏ€๋กœ 18์€ ํ•˜์ƒค๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž์—ฐ์ˆ˜ x๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ x๊ฐ€ ํ•˜

programmers.co.kr