| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- re-id
- REDIS
- 알고리즘
- 채팅
- Class
- 마스킹
- js
- 개발일지
- 정보처리기사실기
- WHERE절
- poetry
- Commpot
- Git
- 파이썬
- vscode
- 1주차
- resnet50
- 백준
- 가상환경
- 정보처리기사
- WebSocket
- sql
- 2주차
- channels
- 미니프로젝트
- 프로젝트
- 프로그래머스
- WIL
- 장고
Archives
- Today
- Total
개발일기
#9 프로그래머스 로그인성공/최댓값만들기2/인덱스바꾸기/배열회전/외계행성나이 본문
1. 로그인 성공!
머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.
id_pw: ["meosseugi", "1234"]
db: [["rardss", "123"], ["yyoom", "1234"], ["meosseugi", "1234"]]
result : login
이유: 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.
def solution(id_pw, db):
for i in db:
if id_pw[0] in i:
if id_pw[1] == i[1]:
return "login"
else:
return "wrong pw"
return "fail"
# 다른 풀이
def solution(id_pw, db):
if db_pw := dict(db).get(id_pw[0]):
return "login" if db_pw == id_pw[1] else "wrong pw"
return "fail"
# :=는 Python 3.8에서 새로 나온 기능
# := 바다코끼리 연산자
# dict(db): 리스트의 값들이 key/value 쌍을 맞출 수 있는 2개로 구성되어 있으면, dictionary 형태로 변경이 가능하다
2. 최댓값 만들기2
정수 배열 numbers가 매개변수로 주어집니다.
numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
# 최댓값만들기2
def solution(numbers):
numbers.sort()
rightnumber = numbers[-1]*numbers[-2]
leftnumber = numbers[0]*numbers[1]
if rightnumber > leftnumber:
return rightnumber
else:
return leftnumber
# if-else문을, return max(rightnumber,leftnumber)로 한줄로 해결할 수도 있다!
# 다른 풀이
def solution(numbers):
numbers = sorted(numbers)
return max(numbers[0] * numbers[1], numbers[-1]*numbers[-2])
3. 인덱스 바꾸기
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때,
my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록
solution 함수를 완성해보세요.
# 인덱스 바꾸기
def solution(my_string, num1, num2):
my_list = list(my_string)
my_list[num1], my_list[num2] = my_list[num1], my_list[num1]
return ''.join(my_list)
4. 배열 회전시키기
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다.
배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
# 배열 회전시키기
def solution(numbers, direction):
if direction == "right":
numbers.insert(0,numbers[-1])
# insert: def insert(self,
# __index: SupportsIndex,
# __object: _T) -> None
del numbers[-1]
else:
numbers.append(numbers[0])
del numbers[0]
return numbers
# 다른 사람 풀이1
def solution(numbers, direction):
return [numbers[-1]] + numbers[:-1] if direction == 'right' else numbers[1:] + [numbers[0]]
# 풀이2
from collections import deque
def solution(numbers, direction):
numbers = deque(numbers)
if direction == 'right':
numbers.rotate(1)
else:
numbers.rotate(-1)
return list(numbers)
5. 외계행성의 나이
우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다.
입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다.
a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다.
나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.
# 외계행성의 나이
def solution(age):
dic = {0:"a", 1:"b", 2: "c", 3: "d", 4: "e", 5: "f", 6: "g", 7: "h", 8: "i", 9: "j"}
if len(str(age)) == 4:
return "baaa"
elif len(str(age)) == 3:
return dic[age//100] + dic[(age%100)//10] + dic[age%10]
elif len(str(age)) == 2:
return dic[age//10] + dic[age%10]
else:
return dic[age]
# 다른 풀이
def solution(age):
return ''.join([chr(int(i)+97) for i in str(age)])
# 문자열age 에서 i를 정수로 변환 한 후에 97을 더한 유니코드를 반환
def solution(age):
age = str(age)
age = age.replace("0", "a")
age = age.replace("1", "b")
age = age.replace("2", "c")
age = age.replace("3", "d")
age = age.replace("4", "e")
age = age.replace("5", "f")
age = age.replace("6", "g")
age = age.replace("7", "h")
age = age.replace("8", "i")
age = age.replace("9", "j")
return age
def solution(age):
age = str(age)
answer = ''
match = {"0":"a", "1":"b", "2":"c", "3":"d", "4":"e", "5":"f", "6":"g", "7":"h", "8":"i", "9":"j"}
for i in age:
answer += match[i]
return answer
'오류 및 알고리즘정리본' 카테고리의 다른 글
| #11 백준 영수증/색종이/팰린드롬인지 확인하기 (0) | 2023.04.27 |
|---|---|
| #10 프로그래머스 영어가 싫어요/이진수더하기/숫자찾기/369게임/저주의숫자3 (0) | 2023.04.26 |
| #8 프로그래머스 문자열을정수로바꾸기/주사위의개수/직각삼각형출력/문자열정렬/n의배수고르기 (0) | 2023.04.22 |
| #7 프로그래머스 카드뭉치/암호해독/대문자, 소문자 바꾸기/가위바위보/세균증식 (2) | 2023.04.21 |
| #6 프로그래머스 개미군단/문자열안에문자열/제곱수판별 (1) | 2023.04.20 |