[프로그래머스] 코딩테스트 Lv0 (1)

2025. 8. 8. 20:48·코딩 테스트/01. Python

1. 나머지 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/120810

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(num1, num2):
    return num1 % num2

 

2. 두 수의 차 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/120803

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(num1, num2):
    answer = num1-num2
    return answer

 

3. 숫자 비교하기

https://school.programmers.co.kr/learn/courses/30/lessons/120807

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(num1, num2):
    if num1 == num2:
        return 1
    else:
        return -1

 

4. 나이 출력

https://school.programmers.co.kr/learn/courses/30/lessons/120820

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(age):
    answer = 2022 - age + 1
    return answer

 

5. 두 수의 나눗셈

https://school.programmers.co.kr/learn/courses/30/lessons/120806

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(num1, num2):
    result = (num1 / num2) * 1000
    return int(result)

POINT!

정수부분을 return 해줘야하기 때문에 마지막에 int붙여주기

 

6. 몫 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/120805

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(num1, num2):
    result = num1 // num2
    return result

 

7. 두 수의 곱 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/120804

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(num1, num2):
    result = num1 * num2
    return result

 

8. 두 수의 합 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/120802

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(num1, num2):
    result = num1 + num2
    return result

 

9. 각도기

https://school.programmers.co.kr/learn/courses/30/lessons/120829

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(angle):
    if 0 < angle < 90:
        return 1
    elif angle == 90:
        return 2
    elif 90 < angle < 180:
        return 3
    else:
        return 4

POINT!

콜론(:)은 이제부터 들여쓰기 되는 블록이 시작된다는 뜻입니다.

그래서 if,elif,else,for,while,def,class 끝에는 항상  콜론(:)을 붙여야해요!

 

10. 양꼬치

https://school.programmers.co.kr/learn/courses/30/lessons/120830

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

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

POINT!

코드를 작성하는 흐름 = 최종결과를 먼저 생각하고, 필요한 조건을 거슬러 올라가 조립하는 방식

 

for문 시작~

11. 짝수의 합 

https://school.programmers.co.kr/learn/courses/30/lessons/120831

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

def solution(n):
    total = 0
    for i in range(1, n+1):
        if i % 2 == 0:
            total += i  # total에 i를 더해서 다시 total에 넣는다
    return total

 

12. 배열의 평균값

https://school.programmers.co.kr/learn/courses/30/lessons/120817

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

방법 1)

def solution(numbers):
    return sum(numbers) / len(numbers)

 

방법 2)

def solution(numbers):
	total = 0
    for i in numbers:
    	total += i
    average = total/len(numbers)
    
    return average

 

13. 배열 뒤집기

https://school.programmers.co.kr/learn/courses/30/lessons/120821

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

방법 1) reversed 함수 

def solution(num_list):
    return list(reversed(num_list))

reversed()는 리스트, 문자열, 튜플 처럼 순서가 있는 자료형이면 바로 넣을 수 있어요.

방법 2)  슬라이싱

def solution(num_list):
    return num_list[::-1]
  • 구조: 리스트[시작:끝:간격]
  • 시작: 어디서 출발할지(시작할 인덱스 번호)
  • 끝: 어디 전까지 갈지(포함 안함)
  • 간격: (+)면 앞으로, (-)면 뒤로몇칸씩 건너뛸지(= 간격의 절대값)
    즉, 부호가 방향을 결정합니다.
  • 예시)
range(1, 6, 1)   # 1 → 2 → 3 → 4 → 5 (앞으로)
range(5, 0, -1)  # 5 → 4 → 3 → 2 → 1 (뒤로)
range(10, 0, -2) # 10 → 8 → 6 → 4 → 2 (2칸씩 뒤로)

방법 3) for문

def solution(num_list):
    reversed_list = []
    for i in range(len(num_list)-1, -1, -1):  # 마지막 인덱스부터 0까지
        reversed_list.append(num_list[i])
    return reversed_list

 

14. 짝수, 홀수 개수

https://school.programmers.co.kr/learn/courses/30/lessons/120824

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

방법 1) for문

def solution(num_list):
    even_count=0
    odd_count=0
    for i in num_list:
        if i % 2 == 0:
            even_count += 1
        else:
            odd_count += 1
    return [even_count, odd_count]

방법 2) 좀 더 수정한 버전

def solution(num_list):
    answer = [0,0]

    for num in num_list:
        if num % 2 == 0:
            answer[0] += 1
        else:
            answer[1] += 1

    return answer

 

15. 뒤집힌 문자열

def solution(my_string):
    return ''.join(reversed(my_string))

join의 기본 구조

'구분자'.join(리스트나 튜플 같은 반복 가능한 객체)

 

  • '구분자': 붙일 때 사이에 넣을 문자열
  • join() 안의 값: 문자열들의 모음(리스트, 튜플, 문자열 등)
  • concat(+)과 join의 차이점
    • join 은 concat을 더 빠르고 효율적으로 하는 도구
    • join은 반복문으로 문자열 합칠 때  + 보다 효율이 좋습니다.

16. 편지

https://school.programmers.co.kr/learn/courses/30/lessons/120898

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(message):
    return len(message) * 2

 

 

17. 피자 나눠먹기

https://school.programmers.co.kr/learn/courses/30/lessons/120814

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

방법 1)

def solution(n):
    return (n + 6) // 7

 

방법 2)

def solution(n):
    if n % 7 == 0:
        return n // 7
    else:
        return n // 7 + 1

 

18. 세균 증식

https://school.programmers.co.kr/learn/courses/30/lessons/120910

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

def solution(n, t):
    answer = n * (2 ** t)
    return answer

 

19. 최댓깂 만들기(1)

https://school.programmers.co.kr/learn/courses/30/lessons/120847

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(numbers):
    numbers.sort()
    answer = max(numbers[0] * numbers[1], numbers[-1] * numbers[-2])
    return answer

 

20. 자릿수 더하기

https://school.programmers.co.kr/learn/courses/30/lessons/120906

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

방법 1)

def solution(n):
    total = 0
    for i in str(n):
        total += int(i)
    return total

방법 2) 컴프리헨션 문법

def solution(n):
    return sum(int(i) for i in str(n))
  • 문제 풀이 해석 
더보기

1단계 — str(n)

  • 숫자 n을 문자열로 변환
  • 예: n = 1234 → "1234"

2단계 — for i in str(n)

  • "1234"에서 한 글자씩 꺼냄
  • 꺼내는 순서: '1', '2', '3', '4'

3단계 — int(i)

  • 꺼낸 글자를 숫자로 변환
  • '1' → 1, '2' → 2, ...

4단계 — int(i) for i in str(n)

  • 이건 "리스트처럼" 숫자들이 생성되는 구조
  • 예: [1, 2, 3, 4] 처럼 만들어짐
    (여기서는 실제 리스트는 안 만들고, 바로 합계 계산에 넘김)

5단계 — sum(...)

  • 안에 있는 숫자들을 모두 더함
  • [1, 2, 3, 4] → 1 + 2 + 3 + 4 = 10

 

보충 설명

예시 1 — 리스트 컴프리헨션

nums = [int(i) for i in "1234"] 
print(nums) # [1, 2, 3, 4]

"1234"에서 한 글자씩 꺼내서 숫자로 변환한 리스트 생성


예시 2 — sum() 안에서 사용

sum(int(i) for i in "1234") # [1, 2, 3, 4]의 합 → 10

여기서는 [] 대신 () 형태라 제너레이터 표현식이 돼서,
리스트를 만들지 않고 바로 합계를 계산해줘서 조금 더 효율적

  • 컴프리헨션 문법 이란?
더보기

📌 컴프리헨션(Comprehension) 문법이란?

  • 리스트, 딕셔너리, 집합 등을 짧게 만들 수 있는 파이썬 문법
  • for 문과 조건문을 한 줄로 합친 것
  • 읽는 방법:
  • "for문 돌리면서 이 규칙대로 값을 만들겠다"

1. 리스트 컴프리헨션

기본 구조

[값을_만드는_식 for 변수 in 반복가능한것]

예시 1 — 1부터 5까지 제곱 리스트 만들기

squares = [x**2 for x in range(1, 6)] 
print(squares) # [1, 4, 9, 16, 25]

예시 2 — 문자열에서 숫자 리스트 만들기

nums = [int(ch) for ch in "1234"] 
print(nums) # [1, 2, 3, 4]
 

2. 조건문 붙이기

even_nums = [x for x in range(10) if x % 2 == 0] 
print(even_nums) # [0, 2, 4, 6, 8]

0부터 9까지 중에서 짝수만 리스트에 담기


3. 제너레이터 컴프리헨션 (괄호 () 사용)

  • 리스트 [] 대신 괄호 ()를 쓰면, 리스트를 만들지 않고 값을 하나씩 생성
  • sum(), max() 같은 함수 안에 쓸 때 효율적
total = sum(int(ch) for ch in "1234") 
print(total) # 10

💡 정리

  • [] → 리스트 생성
  • () → 값을 하나씩 바로 전달(메모리 절약)
  • for 앞에 오는 건 “그 값에 어떤 변환을 할지”
  • for 뒤에는 “어디서 값을 꺼낼지”

 

'코딩 테스트 > 01. Python' 카테고리의 다른 글

[프로그래머스]코딩테스트 Lv0 (3)  (2) 2025.08.11
[프로그래머스] 코딩테스트 Lv0(2)  (9) 2025.08.09
'코딩 테스트/01. Python' 카테고리의 다른 글
  • [프로그래머스]코딩테스트 Lv0 (3)
  • [프로그래머스] 코딩테스트 Lv0(2)
Growth DA Log
Growth DA Log
Growth DA Log 님의 블로그 입니다.
  • Growth DA Log
    Growth DA Log님의 블로그
    Growth DA Log
  • 전체
    오늘
    어제
    • 분류 전체보기 (125)
      • TIS_COMPANY (6)
      • 코딩 테스트 (61)
        • 01. Python (3)
        • 02. SQL (58)
      • 데이터 분석 (53)
        • 01. BigQuery (9)
        • 02. GA4 (1)
        • 02-1. GA4를 더 잘 다루기 위한 마케팅 개.. (5)
        • 03. streamlit (5)
        • 04. Git (12)
        • 05. 데이터 엔지니어링 (3)
        • 06. 데이터 모델링 (11)
        • 07. Excel (0)
        • 08. Tableau (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    git
    tableau
    이행성
    AARRR
    rank
    tableaubootcamp
    Reset
    쿼리테스트
    코테
    코딩테스트
    cross_join
    DENSE_RANK
    ROW_NUMBER
    streamlit
    solvesql
    revert
    윈도우함수
    SQL
    프로그래머스
    코드잇스프린트후기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Growth DA Log
[프로그래머스] 코딩테스트 Lv0 (1)
상단으로

티스토리툴바