[프로그래머스 Python] 코딩테스트 입문 Day 6 - 문자열, 반복문, 출력, 배열, 조건문
코딩테스트 입문 Day 6 문자열, 반복문, 출력, 배열, 조건문
- 문자열 뒤집기
- 직각삼각형 출력하기
- 짝수 홀수 개수
- 문자 반복 출력하기
1. 문자열 뒤집기
문자열 my_string
이 매개변수로 주어집니다. my_string
을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
👉 문제 보러가기
(1) 코드 작성 - list
def solution(my_string):
return "".join([my_string[i] for i in range(-1, (len(my_string)+1)*-1, -1)])
(2) 코드 작성 - string
def solution(my_string):
answer = ""
# 빈 문자열 answer 함수에 my_string을 뒤에서부터 하나씩 추가
for i in range(-1, (len(my_string)+1)*-1, -1):
answer += my_string[i]
return answer
(3) 코드 리뷰 및 회고
- version 1 : 리스트 컴프리헨션
my_string
이 문자열 형태이기 때문에 리스트 컴프리핸션과 for문을 사용해 뒤집은 후 join으로 묶어주었다.- 이전에 많이 해봤던 방식이라서 쉽게 풀었다.
- version 2 : 문자열 연산
- ‘문자열은 연산이 가능하다’는 점을 이용해서 문제를 플었다.
- answer 을 빈 문자열로 만든 후, 문자열의 인덱스를 뒤에서부터 가져와 answer 변수에 더해주었다.
- EASY 😎
2. 직각삼각형 출력하기
““의 높이와 너비를 1이라고 했을 때, ““을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.
👉 문제 보러가기
(1) 코드 작성
n = int(input())
for i in range(1, n+1):
print("*"*i)
(2) 코드 리뷰 및 회고
-
- 기호로 직각삼각형을 만드는 문제이다.
- 높이와 너비 값을 n으로 입력받고 그 개수만큼 반복 출력하도록 한다.
- SO EASY 😎
3. 짝수 홀수 개수
정수가 담긴 리스트 num_list
가 주어질 때, num_list
의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
👉 문제 보러가기
(1) 코드 작성 - 불친절 ver
def solution(num_list):
return [len([x for x in num_list if x%2==0]), len([y for y in num_list if y%2!=0])]
(2) 코드 작성 - 친절 ver
def solution(num_list):
# 짝수 개수
even_list = [e for e in num_list if e%2==0]
even_cnt = len(even_list)
# 홀수 개수
odd_list = [o for o in num_list if o%2!=0]
odd_cnt = len(odd_list)
return [even_cnt, odd_cnt]
(3) 코드 리뷰 및 회고
- 불친절 ver를 보기 좋게 작성한 것이 친절 ver이다.
- SO EASY 😎
4. 문자 반복 출력하기
문자열 my_string
과 정수 n
이 매개변수로 주어질 때, my_string
에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
👉 문제 보러가기
(1) 코드 작성 - 문자열 연산
def solution(my_string, n):
answer = ''
for i in range(len(my_string)):
answer += my_string[i]*n
return answer
(2) 코드 작성 - map
def solution(my_string, n):
def multi(x):
return x*n
return "".join(list(map(multi, my_string)))
(3) 코드 리뷰 및 회고
- version 1 : 문자열 연산
- 문자열 연산으로 반복횟수를 곱하여 answer 변수에 추가해주었다.
- version 2 : map
- 솔루션 함수 내에 multi라는 함수를 생성했다.
- 이때, multi(x)로 설정한 이유는 map 적용 시 my_string을 x 값으로 넣기 위해서이다.
- map으로 문자열을 불러올 때 하나씩 쪼개어서 가져온다. 즉, ‘hello’에서 ‘h’, ‘e’, ‘l’, ‘l’, ‘o’가 multi 함수에 적용되어 불러와진다.
- list로 변환 후 join으로 문자열 형식으로 바꿔주었다.
- multi 함수를 만들 때, n 값을 넣어주지 않았다.(솔루션 함수 내에 위치하고 있고, 솔루션 함수 내에선 n이 정의되기 때문)
👩🏻💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.
댓글남기기