티스토리 뷰
푼 문제들
간단한 논리 연산
문제
풀이
def solution(x1, x2, x3, x4):
return (x1 or x2) and (x3 or x4)
or 연산은 둘 중 하나만 true여도 true를 반환하고,
and 연산은 둘 다 true여야 true를 반환한다.
주사위 게임 3
문제
풀이
def solution(a, b, c, d):
# 주사위 값 오름차순 정렬
dice = sorted([a, b, c, d])
# 모든 주사위 값이 같은 경우
if dice[0] == dice[1] == dice[2] == dice[3]:
return 1111 * dice[0]
# 세 개의 주사위 값이 같고 나머지 하나가 다른 경우
if dice[0] == dice[1] == dice[2] or dice[1] == dice[2] == dice[3]:
p = dice[1] # dice[2]도 가능하다
q = dice[0] if dice[0] != p else dice[3]
return (10 * p + q) ** 2
# 두 개의 주사위 값이 각각 같은 경우
if dice[0] == dice[1] and dice[2] == dice[3]:
p = dice[0]
q = dice[2]
return (p + q) * abs(p - q)
# 두 주사위 값이 같고, 나머지 두 주사위 값이 각각 다른 경우
if dice[0] == dice[1]:
return dice[2] * dice[3]
if dice[1] == dice[2]:
return dice[0] * dice[3]
if dice[2] == dice[3]:
return dice[0] * dice[1]
# 모든 주사위 값이 다른 경우 최소값 출력
else: return dice[0]
주사위 값을 배열에 넣어 오름차순 정렬한 뒤
배열 요소를 이용해서 조건에 따라 다른 점수를 반환한다.
글자 이어 붙여 문자열 만들기
문제
풀이
def solution(my_string, index_list):
res = ""
for i in index_list:
res += my_string[i]
return res
빈 문자열 res를 선언한 뒤 index_list를 순회하며 주어진 문자열의 i번째 값을 res에 더한다.
9로 나눈 나머지
문제
풀이
def solution(number):
return int(number) % 9
number(문자열)를 int형으로 변환한 뒤 9로 나눈다.
문자열 여러 번 뒤집기
문제
풀이
def solution(my_string, queries):
// 리스트 슬라이싱을 쓰기 위해 입력받은 문자열을 리스트로 변환
my_list = list(my_string)
// s ~ e 범위의 부분문자열을 뒤집는 작업수행
for query in queries:
s, e = query
my_list[s:e+1] = my_list[s:e+1][::-1]
return "".join(my_list) // 리스트를 문자열로 변환
문자열을 리스트로 변환하여 슬라이싱을 통해 s~e범위의 문자열을 반복적으로 뒤집는다.
list[::-1] < 파이썬에서 리스트를 뒤집는 슬라이싱 기법이다.
'프로그래머스 > 파이썬' 카테고리의 다른 글
[파이썬] Day 10 문자열 (0) | 2024.06.05 |
---|---|
[파이썬] Day 9 문자열 (1) | 2024.06.04 |
[파이썬] Day 7 반복문 (0) | 2024.05.28 |
[파이썬] Day 6 조건문, 반복문 (0) | 2024.05.04 |
[파이썬] Day 5 조건문 (1) | 2024.05.02 |