코딩테스트 입문 Day 7 문자열, 조건문, 수학, 반복문

  • 특정 문자 제거하기
  • 각도기
  • 양꼬치
  • 짝수의 합

1. 특정 문자 제거하기

문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
👉 문제 보러가기

(1) 코드 작성 - replace

def solution(my_string, letter):    
    return my_string.replace(letter, "")

(2) 코드 작성 - re 모듈

import re

def solution(my_string, letter):
    return re.sub(letter, "", my_string)

(3) 코드 리뷰 및 회고

  • version 1 : replace
    • 문자열 내에서 특정 문자를 제거할 때, replace 함수를 사용할 수 있다.
    • 문자열.replace(제거할 특정 문자, 대체할 문자)
  • version 2 : re
    • 문자열 내에서 특정 문자를 제거할 때, re 모듈을 사용할 수 있다.
    • import re, re.sub(제거할 특정 묹자, 대체할 문자, 문자열)
  • EASY 😎


2. 각도기

각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.

  • 예각 : 0 < angle < 90
  • 직각 : angle = 90
  • 둔각 : 90 < angle < 180
  • 평각 : angle = 180

👉 문제 보러가기

(1) 코드 작성

def solution(angle):
    # 예각 == 1, 직각 == 2, 둔각 == 3, 평각 == 4
    if 0 < angle < 90:
        return 1
    elif angle == 90:
        return 2
    elif 90 < angle < 180:
        return 3
    elif angle == 180:
        return 4

(2) 코드 리뷰 및 회고

  • 조건문을 사용할 때 순서를 신경써야한다.
  • 하지만 각도기를 계산할 땐 4가지 조건에 대해 겹치는 부분이 없기 때문에 순서 상관없이 작성해도 된다.
  • 코드를 보기 좋게 작성하기 위해 return 값이 1 ~ 4인 조건을 순서대로 작성했다.
  • EASY 😎


3. 양꼬치

머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 nk가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.
👉 문제 보러가기

(1) 코드 작성 - 친절 ver

def solution(n, k):
    service = n // 10
    k_num = k - service    
    return 12000*n + 2000*k_num

(2) 코드 작성 - 불친절 ver

def solution(n, k):    
    return 12000*n + 2000*(k - n//10)

(3) 코드 리뷰 및 회고

  • 불친절 ver를 보기 좋게 작성한 것이 친절 ver이다.
  • 서비스로 받은 음료수의 개수만큼 결제금액에서 제외해야하기 때문에 마신 음료수 개수 - 10인분당 서비스로 받은 음료수 개수를 계산 과정에 사용했다.
  • SO EASY 😎


4. 짝수의 합

정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
👉 문제 보러가기

(1) 코드 작성 - 친절 ver

def solution(n):
    answer = []    
    # 2부터 n까지의 숫자를 스텝을 2로 하여 변수에 추가
    for i in range(2, n+1, 2):
        answer.append(i)
    return sum(answer)

(2) 코드 작성 - 불친절 ver

def solution(n):
    return sum([x for x in range(n+1) if x%2==0])

(3) 코드 리뷰 및 회고

  • 불친절 ver를 보기 좋게 작성한 것이 친절 ver이다.
  • 친절 ver
    • range에 step을 추가하여 짝수만 반환될 수 있도록 했다.
    • 빈 리스트에 짝수를 추가한 후 sum 함수로 리스트 내 요소들의 합을 구했다.
  • 불친절 ver
    • 위 친절 버전과는 다르게 range에 정수 n까지 출력될 수 있게 설정했다.
    • 그리고 조건문을 추가하여 2로 나누어떨어질 때의 값만 가져올 수 있도록 했다.
    • 리스트 컴프리헨션으로 짝수 값을 가져온 후 sum 함수로 리스트 내 요소들의 합을 구했다.
  • SO EASY 😎


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

댓글남기기