λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

λΆ„λ₯˜ 전체보기

(159)
[Programmers] 3진법 뒀집기 문제 μ„€λͺ… μžμ—°μˆ˜ n이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§‘λ‹ˆλ‹€. n을 3진법 μƒμ—μ„œ μ•žλ’€λ‘œ 뒀집은 ν›„, 이λ₯Ό λ‹€μ‹œ 10μ§„λ²•μœΌλ‘œ ν‘œν˜„ν•œ 수λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”. λ‚˜μ˜ μ½”λ“œ def solution(n): p = 0 tmp = '' # μ›λž˜ μ‹€μ œ 3진법은 μ΅œμ’…μ μœΌλ‘œ 뒀집어야 ν•˜μ§€λ§Œ, μ—¬κΈ°μ„œλŠ” 뒀집은 수둜 10진법을 κ΅¬ν•˜κΈ° λ•Œλ¬Έμ— 뒀집지 μ•ŠμŒ. while n: tmp += str(n % 3) n = n // 3 # 3진법 10μ§„λ²•μœΌλ‘œ λ³€ν™˜ int(tmp,3) μœΌλ‘œλ„ κ°€λŠ₯. for i in range(len(tmp),0,-1): if tmp[i-1] != '0': p += int(tmp[i-1]) * (3 ** (len(tmp) - i)) return p 뢄석 > 10μ§„μˆ˜λ₯Ό 3μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜λŠ” ..
[Programmers] μ†Œμˆ˜ μ°ΎκΈ° 문제 ν•œμžλ¦¬ μˆ«μžκ°€ 적힌 쒅이 쑰각이 ν©μ–΄μ ΈμžˆμŠ΅λ‹ˆλ‹€. 흩어진 쒅이 쑰각을 λΆ™μ—¬ μ†Œμˆ˜λ₯Ό λͺ‡ 개 λ§Œλ“€ 수 μžˆλŠ”μ§€ μ•Œμ•„λ‚΄λ € ν•©λ‹ˆλ‹€. 각 쒅이 쑰각에 적힌 μˆ«μžκ°€ 적힌 λ¬Έμžμ—΄ numbersκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 쒅이 쑰각으둜 λ§Œλ“€ 수 μžˆλŠ” μ†Œμˆ˜κ°€ λͺ‡ κ°œμΈμ§€ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”. μ œν•œμ‚¬ν•­ numbersλŠ” 길이 1 이상 7 μ΄ν•˜μΈ λ¬Έμžμ—΄μž…λ‹ˆλ‹€. numbersλŠ” 0~9κΉŒμ§€ 숫자만으둜 이루어져 μžˆμŠ΅λ‹ˆλ‹€. "013"은 0, 1, 3 μˆ«μžκ°€ 적힌 쒅이 쑰각이 ν©μ–΄μ Έμžˆλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. μ½”λ“œ import itertools import math def solution(numbers): arr = [] answer = [] idx = 0 # numbers의 각 문자λ₯Ό ν™œμš©ν•΄μ„œ λ‚˜μ˜¬ 수 μžˆλŠ” λͺ¨λ“  순..
[Programmers] λ‹€μŒ 큰 숫자 문제 μžμ—°μˆ˜ n이 μ£Όμ–΄μ‘Œμ„ λ•Œ, n의 λ‹€μŒ 큰 μˆ«μžλŠ” λ‹€μŒκ³Ό 같이 μ •μ˜ ν•©λ‹ˆλ‹€. 쑰건 1. n의 λ‹€μŒ 큰 μˆ«μžλŠ” n보닀 큰 μžμ—°μˆ˜ μž…λ‹ˆλ‹€. 쑰건 2. n의 λ‹€μŒ 큰 μˆ«μžμ™€ n은 2μ§„μˆ˜λ‘œ λ³€ν™˜ν–ˆμ„ λ•Œ 1의 κ°―μˆ˜κ°€ κ°™μŠ΅λ‹ˆλ‹€. 쑰건 3. n의 λ‹€μŒ 큰 μˆ«μžλŠ” 쑰건 1, 2λ₯Ό λ§Œμ‘±ν•˜λŠ” 수 쀑 κ°€μž₯ μž‘μ€ 수 μž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄μ„œ 78(1001110)의 λ‹€μŒ 큰 μˆ«μžλŠ” 83(1010011)μž…λ‹ˆλ‹€. μžμ—°μˆ˜ n이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, n의 λ‹€μŒ 큰 숫자λ₯Ό return ν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”. μ œν•œ 사항 n은 1,000,000 μ΄ν•˜μ˜ μžμ—°μˆ˜ μž…λ‹ˆλ‹€. λ‚˜μ˜ μ½”λ“œ def solution(n): p = str(bin(n)) while p.count('1') != str(bin(n+1)).count('1')..
[Programmers] μ‹ κ·œ 아이디 μΆ”μ²œ λ‚˜μ˜ μ½”λ“œ def solution(new_id): word = '' new_word = [] # 1단계 new_id = new_id.lower() # 2단계 for i in new_id: if i.isalpha() or i.isdigit() or i in ['-','_','.']: word += i # 3단계 while '..' in word: word = word.replace('..','.') # 4단계 word = word.strip('.') # 5단계 if len(word) == 0: word += 'a' # 6단계 if len(word) >= 16: word = word[:15] if word[-1] == '.': word = word.rstrip('.') # 7단계 if len(word) 간단..
μ½”λ”©ν…ŒμŠ€νŠΈ μŠ€ν„°λ”” 1μ£Όμ°¨ (4/25 ~ 5/1) 1. μ‹ κ³  κ²°κ³Ό λ°›κΈ° [Programmers] μ‹ κ³  κ²°κ³Ό λ°›κΈ° 문제 문제 μ„€λͺ… μ‹ μž…μ‚¬μ› λ¬΄μ§€λŠ” κ²Œμ‹œνŒ λΆˆλŸ‰ 이용자λ₯Ό μ‹ κ³ ν•˜κ³  처리 κ²°κ³Όλ₯Ό λ©”μΌλ‘œ λ°œμ†‘ν•˜λŠ” μ‹œμŠ€ν…œμ„ κ°œλ°œν•˜λ € ν•©λ‹ˆλ‹€. 무지가 κ°œλ°œν•˜λ €λŠ” μ‹œμŠ€ν…œμ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 각 μœ μ €λŠ” ν•œ λ²ˆμ— ν•œ wm05028.tistory.com 2. 둜또의 졜고 μˆœμœ„μ™€ μ΅œμ €μˆœμœ„ [Programmers] 둜또의 졜고 μˆœμœ„μ™€ μ΅œμ € μˆœμœ„ 문제 둜또 6/45(μ΄ν•˜ '둜또'둜 ν‘œκΈ°)λŠ” 1λΆ€ν„° 45κΉŒμ§€μ˜ 숫자 쀑 6개λ₯Ό μ°μ–΄μ„œ λ§žνžˆλŠ” λŒ€ν‘œμ μΈ λ³΅κΆŒμž…λ‹ˆλ‹€. μ•„λž˜λŠ” 둜또의 μˆœμœ„λ₯Ό μ •ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. 1 6개 λ²ˆν˜Έκ°€ λͺ¨λ‘ 일치 2 5개 λ²ˆν˜Έκ°€ 일치 3 4개 wm05028.tistory.com 3. 내적 [Programmers] 내적 문제 길이가 같은 두 1차원 μ •μˆ˜ λ°°μ—΄ a, bκ°€..
[Programmers] μ˜μ–΄ λλ§μž‡κΈ° 문제 1λΆ€ν„° nκΉŒμ§€ λ²ˆν˜Έκ°€ λΆ™μ–΄μžˆλŠ” nλͺ…μ˜ μ‚¬λžŒμ΄ μ˜μ–΄ λλ§μž‡κΈ°λ₯Ό ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ˜μ–΄ λλ§μž‡κΈ°λŠ” λ‹€μŒκ³Ό 같은 κ·œμΉ™μœΌλ‘œ μ§„ν–‰λ©λ‹ˆλ‹€. 1λ²ˆλΆ€ν„° 번호 μˆœμ„œλŒ€λ‘œ ν•œ μ‚¬λžŒμ”© μ°¨λ‘€λŒ€λ‘œ 단어λ₯Ό λ§ν•©λ‹ˆλ‹€. λ§ˆμ§€λ§‰ μ‚¬λžŒμ΄ 단어λ₯Ό λ§ν•œ λ‹€μŒμ—λŠ” λ‹€μ‹œ 1λ²ˆλΆ€ν„° μ‹œμž‘ν•©λ‹ˆλ‹€. μ•žμ‚¬λžŒμ΄ λ§ν•œ λ‹¨μ–΄μ˜ λ§ˆμ§€λ§‰ 문자둜 μ‹œμž‘ν•˜λŠ” 단어λ₯Ό 말해야 ν•©λ‹ˆλ‹€. 이전에 λ“±μž₯ν–ˆλ˜ λ‹¨μ–΄λŠ” μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€. ν•œ κΈ€μžμΈ λ‹¨μ–΄λŠ” μΈμ •λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ 3λͺ…이 λλ§μž‡κΈ°λ₯Ό ν•˜λŠ” 상황을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. tank → kick → know → wheel → land → dream → mother → robot → tank μœ„ λλ§μž‡κΈ°λŠ” λ‹€μŒκ³Ό 같이 μ§„ν–‰λ©λ‹ˆλ‹€. 1번 μ‚¬λžŒμ΄ μžμ‹ μ˜ 첫 번째 차둀에 tankλ₯Ό λ§ν•©λ‹ˆλ‹€. 2번 μ‚¬λžŒμ΄ μžμ‹ μ˜ 첫 번째 차둀에 kic..
[Programmers] μ†Œμˆ˜ λ§Œλ“€κΈ° 문제 주어진 숫자 쀑 3개의 수λ₯Ό λ”ν–ˆμ„ λ•Œ μ†Œμˆ˜κ°€ λ˜λŠ” 경우의 개수λ₯Ό κ΅¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€. μˆ«μžλ“€μ΄ λ“€μ–΄μžˆλŠ” λ°°μ—΄ numsκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, nums에 μžˆλŠ” μˆ«μžλ“€ 쀑 μ„œλ‘œ λ‹€λ₯Έ 3개λ₯Ό 골라 λ”ν–ˆμ„ λ•Œ μ†Œμˆ˜κ°€ λ˜λŠ” 경우의 개수λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.μ œν•œμ‚¬ν•­ μ œν•œ 사항 nums에 λ“€μ–΄μžˆλŠ” 숫자의 κ°œμˆ˜λŠ” 3개 이상 50개 μ΄ν•˜μž…λ‹ˆλ‹€. nums의 각 μ›μ†ŒλŠ” 1 이상 1,000 μ΄ν•˜μ˜ μžμ—°μˆ˜μ΄λ©°, μ€‘λ³΅λœ μˆ«μžκ°€ λ“€μ–΄μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜μ˜ μ½”λ“œ def solution(nums): cnt = 0 arr = [] # 숫자 μ„Έ 개λ₯Ό λ”ν•΄μ„œ λ‚˜μ˜¬ 수 μžˆλŠ” λͺ¨λ“  경우의 수λ₯Ό 담은 λ°°μ—΄ λ§Œλ“€κΈ° for i in range(len(nums)): for t in range(i+1,len(n..
[Programmers] νŠœν”Œ 문제 μ…€μˆ˜μžˆλŠ” μˆ˜λŸ‰μ˜ μˆœμ„œμžˆλŠ” μ—΄κ±° λ˜λŠ” μ–΄λ–€ μˆœμ„œλ₯Ό λ”°λ₯΄λŠ” μš”μ†Œλ“€μ˜ λͺ¨μŒμ„ νŠœν”Œ(tuple)이라고 ν•©λ‹ˆλ‹€. n개의 μš”μ†Œλ₯Ό 가진 νŠœν”Œμ„ n-νŠœν”Œ(n-tuple)이라고 ν•˜λ©°, λ‹€μŒκ³Ό 같이 ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. (a1, a2, a3, ..., an) νŠœν”Œμ€ λ‹€μŒκ³Ό 같은 μ„±μ§ˆμ„ 가지고 μžˆμŠ΅λ‹ˆλ‹€. μ€‘λ³΅λœ μ›μ†Œκ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. ex : (2, 3, 1, 2) μ›μ†Œμ— 정해진 μˆœμ„œκ°€ 있으며, μ›μ†Œμ˜ μˆœμ„œκ°€ λ‹€λ₯΄λ©΄ μ„œλ‘œ λ‹€λ₯Έ νŠœν”Œμž…λ‹ˆλ‹€. ex : (1, 2, 3) ≠ (1, 3, 2) νŠœν”Œμ˜ μ›μ†Œ κ°œμˆ˜λŠ” μœ ν•œν•©λ‹ˆλ‹€. μ›μ†Œμ˜ κ°œμˆ˜κ°€ n개이고, μ€‘λ³΅λ˜λŠ” μ›μ†Œκ°€ μ—†λŠ” νŠœν”Œ (a1, a2, a3, ..., an)이 μ£Όμ–΄μ§ˆ λ•Œ(단, a1, a2, ..., an은 μžμ—°μˆ˜), μ΄λŠ” λ‹€μŒκ³Ό 같이 집합 기호 '{', '}'λ₯Ό 이..