| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- github
- 마스킹
- 알고리즘
- 가상환경
- 미니프로젝트
- 개발일지
- WIL
- WebSocket
- channels
- 프로그래머스
- sql
- Commpot
- 프로젝트
- 백준
- 2주차
- Class
- 1주차
- WHERE절
- REDIS
- poetry
- js
- 정보처리기사실기
- 파이썬
- 정보처리기사
- Git
- re-id
- resnet50
- vscode
- 채팅
- 장고
Archives
- Today
- Total
개발일기
#10 프로그래머스 영어가 싫어요/이진수더하기/숫자찾기/369게임/저주의숫자3 본문
1. 영어가 싫어요
영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.
# 영어가 싫어요
def solution(numbers):
numbers = numbers.replace("one","1")
numbers = numbers.replace("two","2")
numbers = numbers.replace("three","3")
numbers = numbers.replace("four","4")
numbers = numbers.replace("five","5")
numbers = numbers.replace("six","6")
numbers = numbers.replace("seven","7")
numbers = numbers.replace("eight","8")
numbers = numbers.replace("nine","9")
numbers = numbers.replace("zero","0")
return int(numbers)
def solution(numbers):
d = {'zero':'0','one':'1','two':'2','three':'3','four':'4',
'five':'5','six':'6','seven':'7','eight':'8','nine':'9'}
for k,v in d.items():
numbers = numbers.replace(k,v)
return int(numbers)
# 다른풀이
import re
array = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
array2 = ['0','1','2','3','4','5','6','7','8','9','0']
def solution(numbers):
for i in range(len(array)):
numbers = re.sub(array[i], array2[i], numbers)
return int(numbers)
2. 이진수 더하기
이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.
# 이진수 더하기
def solution(bin1, bin2):
answer = int(bin1,2)+int(bin2,2)
# int(number,2): 이진수 number를 십진수로
return str(bin(answer))[2:]
# bin() 십진수를 이진수로
# 변환하면 0b가 앞에 붙으므로 0b를 제거하고 return한다.
def solution(bin1, bin2):
return format(int(bin1,2) + int (bin2,2), 'b')
# format(number, 'b')하면 number를 이진수로
3. 숫자 찾기
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
# 숫자 찾기
def solution(num, k):
strnum = str(num)
result = strnum.find(str(k))
if result == -1:
return result
else:
return result + 1
# 다른 풀이
def solution(num, k):
return -1 if str(k) not in str(num) else str(num).find(str(k)) + 1
def solution(num, k):
for i, n in enumerate(str(num)):
if str(k) == n:
return i + 1
return -1
def solution(num, k):
try:
return str(num).index(str(k)) + 1
except ValueError:
return -1
4. 369게임
머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.
def solution(order):
listorder = list(str(order))
return listorder.count("3") + listorder.count("6") + listorder.count("9")
def solution(order):
return sum(map(lambda x: str(order).count(str(x)), [3, 6, 9]))
def solution(order):
answer = len([1 for ch in str(order) if ch in "369"])
return answer
def solution(order):
answer = 0
for i in str(order):
if int(i)!=0 and int(i)%3==0:
answer+=1
return answer
5. 저주의 숫자 3

# 저주의 숫자 3
def solution(n):
answer = 0
for i in range(n):
answer +=1
while answer %3 == 0 or '3' in str(answer):
answer +=1
return answer
'오류 및 알고리즘정리본' 카테고리의 다른 글
| #12 프로그래머스 비밀지도 (0으로 문자열 채우기) (0) | 2023.04.28 |
|---|---|
| #11 백준 영수증/색종이/팰린드롬인지 확인하기 (0) | 2023.04.27 |
| #9 프로그래머스 로그인성공/최댓값만들기2/인덱스바꾸기/배열회전/외계행성나이 (1) | 2023.04.25 |
| #8 프로그래머스 문자열을정수로바꾸기/주사위의개수/직각삼각형출력/문자열정렬/n의배수고르기 (0) | 2023.04.22 |
| #7 프로그래머스 카드뭉치/암호해독/대문자, 소문자 바꾸기/가위바위보/세균증식 (2) | 2023.04.21 |