[프로그래머스 Python] 코딩테스트 입문 Day 13 - 문자열, 배열, 사칙연산, 수학, 조건문
코딩테스트 입문 Day 13 문자열, 배열, 사칙연산, 수학, 조건문
1. 컨트롤 제트
숫자와 “Z”가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 “Z”가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 “Z”로 이루어진 문자열 s
가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 1 ≤
s
의 길이 ≤ 200 - -1,000 <
s
의 원소 중 숫자 < 1,000 s
는 숫자, “Z”, 공백으로 이루어져 있습니다.s
에 있는 숫자와 “Z”는 서로 공백으로 구분됩니다.- 연속된 공백은 주어지지 않습니다.
- 0을 제외하고는 0으로 시작하는 숫자는 없습니다.
s
는 “Z”로 시작하지 않습니다.s
의 시작과 끝에는 공백이 없습니다.- “Z”가 연속해서 나오는 경우는 없습니다.
(1) 코드 작성
def solution(s):
# 공백을 기준으로 나누기
s = s.split(" ")
answer = []
# 'Z'값인 경우 answer에 들어가있는 마지막 값에 -1를 곱한 값으로 처리 후 넣기
for n in s:
if n == 'Z':
answer.append(answer[-1]*-1)
else:
answer.append(int(n))
return sum(answer)
(2) 코드 리뷰 및 회고
- 문제는 문자열로 이루어진 입력값을 공백을 기준으로 나누고, Z값이 있을 경우 Z값 이전의 값을 빼준 후 더하는 것이다.
- 공백을 기준으로 숫자를 나누고 Z값이 있을 경우 그 앞에 있는 값에 -를 붙여서 넣어준다.
-
그리고 sum 함수를 사용하여 리스트 내 요소들의 합을 구했다.
- 예시 적용
s = "1 2 Z 4 Z"
s.split(" ")
> [“1”, “2”, “Z”, “4”, “Z”]- 반복문 내에서 s내 요소가 Z가 아니면 int 처리 후 answer 리스트에 넣기
- 요소가 Z이면 answer에 들어간 요소 마지막 값에 -처리 후 넣기
- 반복문 1차 결과 : answer = [1]
- 반복문 2차 결과 : answer = [1, 2]
- 반복문 3차 결과 : answer = [1, 2, -2]
- 반복문 4차 결과 : answer = [1, 2, -2, 4]
- 반복문 5차 결과 : answer = [1, 2, -2, 4, -4]
- sum([1, 2, -2, 4, -4]) == 1
- EASY 😎
2. 배열 원소 길이
문자열 배열 strlist
가 매개변수로 주어집니다. strlist
각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤
strlist
원소의 길이 ≤ 100 strlist
는 알파벳 소문자, 대문자, 특수문자로 구성되어 있습니다.
(1) 코드 작성
def solution(strlist):
return [len(s) for s in strlist]
(2) 코드 리뷰 및 회고
- 문제는
strlist
로 들어오는 입력값에 포함된 요소들의 길이를 리스트에 담아 반환하는 것이다. - 그래서 리스트 컴프리헨션으로 입력값의 요소(s)를 불러오고 s의 길이를 담을 수 있도록
len
함수를 사용했다. - EASY 😎
3. 중복된 문자 제거
문자열 my_string
이 매개변수로 주어집니다. my_string
에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤
my_string
≤ 110my_string
은 대문자, 소문자, 공백으로 구성되어 있습니다. - 대문자와 소문자를 구분합니다.
- 공백(“ “)도 하나의 문자로 구분합니다.
- 중복된 문자 중 가장 앞에 있는 문자를 남깁니다.
(1) 코드 작성
def solution(my_string):
answer = ""
for s in my_string:
if s not in answer:
answer += s
return answer
(2) 코드 리뷰 및 회고
- 문제는 중복된 알파벳이 있는 경우, 가장 앞에 있는 문자만 남기고 나머지는 제거하는 것이다.
- 이 조건을 만족시키기 위해 answer 변수에 빈 문자열을 지정하고 my_string에 있는 요소들을 하나씩 넣는데 answer에 없는 경우에만 들어갈 수 있도록 했다.
- EASY 😎
4. 삼각형의 완성조건 (1)
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
- 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides
이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
sides
의 원소는 자연수입니다.sides
의 길이는 3입니다.- 1 ≤
sides
의 원소 ≤ 1,000
(1) 코드 작성
def solution(sides):
sorted_sides = sorted(sides, reverse=True)
large_s = sorted_sides[0]
other_sum_s = sum(sorted_sides[1:])
return 2 if large_s >= other_sum_s else 1
(2) 코드 리뷰 및 회고
- 삼각형이 만들어질 수 있는 조건은 가장 긴 변의 길이가 나머지 두 변의 길이의 합보다 커야한다.
- 가장 긴 변의 길이를
large_s
변수에 할당한다. - 나머지 두 변의 길이 합을
other_sum_s
변수에 할당한다. - 최종적으로 삼각형이 될 수 있다면 1, 조건을 만족하지 않는다면 2가 반환되도록 설정했다.
- EASY 😎
👩🏻💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.
댓글남기기