| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- 1주차
- 개발일지
- 채팅
- 가상환경
- 정보처리기사실기
- 파이썬
- 마스킹
- github
- REDIS
- 2주차
- 알고리즘
- poetry
- resnet50
- 미니프로젝트
- 정보처리기사
- 프로젝트
- channels
- WebSocket
- Git
- vscode
- Commpot
- re-id
- WHERE절
- sql
- 프로그래머스
- WIL
- Class
- 장고
- 백준
- js
Archives
- Today
- Total
개발일기
#7 프로그래머스 카드뭉치/암호해독/대문자, 소문자 바꾸기/가위바위보/세균증식 본문
1. 카드 뭉치

아이디어: 카드뭉치에서 원하는 순서의 단어가 있으면 pop을 해서 전부 다 pop이 되면 YES, 그렇지 않으면 No가 return하도록 하자..!
# 카드 뭉치
def solution(cards1, cards2, goal):
for g in goal:
if cards1 and cards1[0] == g:
cards1.pop(0)
elif cards2 and cards2[0] == g:
cards2.pop(0)
else:
return "No"
return "Yes"
# 다른 사람 풀이
def solution(cards1, cards2, goal):
for g in goal:
if len(cards1) > 0 and g == cards1[0]:
cards1.pop(0)
elif len(cards2) >0 and g == cards2[0]:
cards2.pop(0)
else:
return "No"
return "Yes"
def solution(cards1, cards2, goal):
answer = 'No'
cards1_subset = []
cards2_subset = []
for w in goal:
if w in cards1:
cards1_subset.append(w)
elif w in cards2:
cards2_subset.append(w)
if cards1_subset == cards1[:len(cards1_subset)] and cards2_subset == cards2[:len(cards2_subset)]:
answer = 'Yes'
return answer
2. 암호해독

# 암호해독
def solution(cipher, code):
cipher_list = list(cipher)
return ''.join(cipher_list[code-1::code])
# 다른 사람 풀이
def solution(cipher, code):
answer = cipher[code-1::code]
# 문자열 인덱싱되는 거 까먹지 말자구~~
return answer
3. 대문자, 소문자 바꾸기
문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요
# 대문자 소문자
def solution(my_string):
result = []
for string in my_string:
if string == string.upper():
result.append(string.lower())
# result += string.lower()과 같다.
else:
result.append(string.upper())
return ''.join(result)
# 다른 사람 풀이
def solution(my_string):
return my_string.swapcase()
def solution(my_string):
answer = ''
for i in my_string:
if i.isupper():
answer+=i.lower()
else:
answer+=i.upper()
return answer
4. 가위바위보
가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.
# 가위바위보
def solution(rsp):
answer = ''
for i in rsp:
if i == '2':
answer+='0'
elif i == '0':
answer+='5'
else:
answer+='2'
return answer
# 다른 사람 풀이
def solution(rsp):
d = {'0':'5','2':'0','5':'2'}
return ''.join(d[i] for i in rsp)
def solution(rsp):
rsp =rsp.replace('2','s')
rsp =rsp.replace('5','p')
rsp =rsp.replace('0','r')
rsp =rsp.replace('r','5')
rsp =rsp.replace('s','0')
rsp =rsp.replace('p','2')
return rsp
# for문 안 쓰고 str만 써서 속도 빠름
def solution(rsp):
return rsp.translate(str.maketrans('025', '502'))
# maketrans???
5. 세균증식
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
# 세균증식
def solution(n, t):
return n*(2**(t))
# 다른 사람 풀이
def solution(n, t):
return n << t # 비프시프트, 비트 연산!!!'오류 및 알고리즘정리본' 카테고리의 다른 글
| #9 프로그래머스 로그인성공/최댓값만들기2/인덱스바꾸기/배열회전/외계행성나이 (1) | 2023.04.25 |
|---|---|
| #8 프로그래머스 문자열을정수로바꾸기/주사위의개수/직각삼각형출력/문자열정렬/n의배수고르기 (0) | 2023.04.22 |
| #6 프로그래머스 개미군단/문자열안에문자열/제곱수판별 (1) | 2023.04.20 |
| #5 프로그래머스 크기가작은부분문자열/모음제거(re.sub 개념)/숨어있는숫자의덧셈 (0) | 2023.04.19 |
| 에러메세지) manage.py:23: UserWarning: Not reading .env - it doesn't exist. dotenv.read_dotenv() (0) | 2023.04.11 |