코딩테스트 입문 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이 정의되기 때문)


👩🏻‍💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.

댓글남기기