๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€

(424)
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์†Œ์ˆ˜ ์ฐพ๊ธฐ ๋‚ด ์ฝ”๋“œ def solution(n): a = set([i for i in range(2,n+1)]) for i in range(2,n): a-=set([k*i for k in range(2,n//i+1)]) return len(a) ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด~ ์ด๊ฑธ๋กœ ์•ˆํ‘ธ๋‹ˆ๊นŒ ์‹œ๊ฐ„์ดˆ๊ณผ๋‚˜๋”๋ผใ…  ๋‹ค๋ฅธ์‚ฌ๋žŒ ์ฝ”๋“œ def solution(n): num=set(range(2,n+1)) for i in range(2,n+1): if i in num: num-=set(range(2*i,n+1,i)) return len(num) ์ด์‚ฌ๋žŒ๋„ ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋กœ ํ’€์—ˆ๋Š”๋ฐ ๋‚˜๋ณด๋‹ค ๋” ํšจ์œจ์ ์ด๊ฒŒ ํ’€์—ˆ๋‹ค! ์ผ๋‹จ ์ฒ˜์Œ์— set์„ ๋งŒ๋“ค๋•Œ range์ด๋ ‡๊ฒŒ๋งŒ ํ•ด๋„ ๋งŒ๋“ค์–ด์ง„๋‹ค. for๋ฌธ์—์„œ ๋ฒ”์œ„๋ฅผ n+1๊นŒ์ง€ ๋Œ๋ ค์•ผํ•œ๋‹ค. ๋‚˜๋Š” n๊นŒ์ง€ ๋Œ๋ ธ๋Š”๋ฐ ..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ ๋‚ด ์ฝ”๋“œ def solution(n): a = '' while n>=3: a += str(n%3) n = n//3 a+=str(n) a = int(a) return sum([int(j)*(3**(len(str(a))-i-1)) for i,j in enumerate(str(a))]) a์— 3์ง„๋ฒ• ๋’ค์ง‘์€ ์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ณ  10์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊ฟ”์„œ ์ถœ๋ ฅํ•˜์˜€๋‹ค. ๋‹ค๋ฅธ์‚ฌ๋žŒ ์ฝ”๋“œ def solution(n): tmp = '' while n: tmp += str(n % 3) n = n // 3 answer = int(tmp, 3) return answer n์„ while๋ฌธ์„ ๋Œ๋ฆด๋•Œ 0๋ณด๋‹ค ํฌ๊ฒŒํ•˜๋ฉด ๋‚˜์ฒ˜๋Ÿผ ๋งˆ์ง€๋ง‰์— ํ•œ๋ฒˆ๋” ๋”ํ•ด์ค„ํ•„์š”๊ฐ€ ์—†๋‹ค. 10์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊ฟ€๋•Œ๋Š” int(tmp,3)์ด๋ ‡๊ฒŒ ์ ์œผ๋ฉด ๋ฐ”๋กœ 10์ง„๋ฒ•์ด ์ถœ๋ ฅ๋œ๋‹ค. ์ด๋•Œ ..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‚ด์  ๋‚ด ์ฝ”๋“œ def solution(a, b): return sum([i*j for i,j in zip(a,b)]) ๋‹ค๋ฅธ์‚ฌ๋žŒ ์ฝ”๋“œ๋„ ๋˜‘๊ฐ™๋‹ค! ์‰ฌ์›€ ใ…Žใ…Ž
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์Œ์–‘ ๋”ํ•˜๊ธฐ ๋‚ด ์ฝ”๋“œ def solution(absolutes, signs): sol=0 for a,s in zip(absolutes, signs): if s==False: sol-=a else: sol+=a return sol zip์œผ๋กœ ํ•˜๋‚˜์”ฉ ๋นผ์„œ ๋”ํ•ด์ฃผ์—ˆ๋‹ค. ๋‹ค๋ฅธ์‚ฌ๋žŒ ์ฝ”๋“œ def solution(absolutes, signs): return sum(absolutes if sign else -absolutes for absolutes, sign in zip(absolutes, signs)) ๋‚ด์ฝ”๋“œ๋ฅผ ํ•œ์ค„๋กœ ์ค„์ธ๊ฑฐ๋‹ค.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ ๋‚ด ์ฝ”๋“œ def solution(number, k): cur=0 delete=0 while True: if delete == k: break if number[cur] < number[cur+1]: if cur!=0: number = number[:cur] + number[cur+1:] cur-=1 else: number = number[cur+1:] delete+=1 else: cur+=1 if cur == len(number)-1: break if k!=delete: number = number[:delete-k] return number k๊ฐœ์˜ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ฒ˜์Œ์— ๋ฌธ์ž์—ด์„ list๋กœ ๋ณ€ํ™˜ํ•ด์„œ ํ’€์—ˆ๋Š”๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์™”๋‹คใ… ใ…  list๋ฅผ ์‚ฌ์šฉํ• ๋•Œ๋Š” list๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  p..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์กฐ์ด์Šคํ‹ฑ ๋‚ด ์ฝ”๋“œ def solution(name): answer = 0 cursor = 0 l = [chr(ord('A')+i) for i in range(26)] s = ['A' for i in range(len(name))] while True: i = 0 idx = l.index(name[cursor]) answer += min(idx,26-idx) s[cursor] = name[cursor] if s == list(name): break while True: if s[(cursor+i)%len(s)] != name[(cursor+i)%len(s)]: cursor+=i answer+=i break elif s[(cursor-i)%len(s)] != name[(cursor-i)%len(s)]: cursor-..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฒด์œก๋ณต ๋‚ด ์ฝ”๋“œ def solution(n, lost, reserve): a = set(lost) & set(reserve) lost = set(lost) - a reserve = set(reserve) - a for i in range(1,n+1): if i in lost: if i-1 in reserve: lost-={i} reserve-={i-1} elif i+1 in reserve: lost-={i} reserve-={i+1} return n - len(lost) ๋จผ์ € lost์™€ reserve์—์„œ ์ค‘๋ณต๋˜๋Š” ์ˆซ์ž๋ฅผ ๋นผ์ค€๋‹ค. for ๋ฌธ์„ n+1๊นŒ์ง€ ๋Œ๋ ค์„œ ์ฒด์œก๋ณต์„ ์žƒ์–ด๋ฒ„๋ฆฐ ํ•™์ƒ ์ง‘ํ•ฉ(lost)์— i๊ฐ€ ์กด์žฌํ•˜๋ฉด i ์•ž, ๋’ค ์ˆซ์ž(+1,-1)๊ฐ€ ์—ฌ๋ถ„ ์ฒด์œก๋ณต์ด ๋‚จ๋Š” ํ•™์ƒ ์ง‘ํ•ฉ(reserve)์— ์žˆ๋Š”์ง€ ๋ณธ๋‹ค. ์กด์žฌ..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์†Œ์ˆ˜ ์ฐพ๊ธฐ ๋‚ด ์ฝ”๋“œ def solution(numbers): import itertools answer = 0 a = [] l = [i for i in str(numbers)] for i in range(1,len(l)+1): b = list(itertools.permutations(l,i)) a += [int("".join(i)) for i in b] a = set(a) for i in a: if i