본문 바로가기
IT 소식

[백준] 25314: 코딩은 체육과목 입니다 (Python)

1. 문제 정보

  • 문제 링크: https://www.acmicpc.net/problem/25314
  • 문제 요약: 4의 배수인 정수 N이 주어졌을 때, N/4 만큼 "long "을 출력하고 마지막에 "int"를 출력하는 문제입니다.
    (예: N=4 -> "long int", N=8 -> "long long int")

2. 풀이

접근 방식

문제를 처음 읽고, 4바이트 정수 N을 입력받으면 "long"이라는 단어를 N / 4번 반복한 뒤, 마지막에 int를 붙여 출력하는 규칙을 파악했습니다.

 

먼저 N을 4로 나눈 몫을 구해야겠다고 생각했습니다. Python에서는 N // 4 연산자를 사용하면 됩니다.

그 몫만큼 "long " 문자열을 반복 출력하고, 반복이 끝난 후 "int"를 출력하면 됩니다.

 

Python의 문자열 곱셈("string" * n) 기능을 활용하면 for 반복문 없이 한 줄로 간결하게 표현할 수 있습니다. ("long " * (N // 4))와 같이 코드를 작성하면 "long " 문자열이 N // 4번 반복되고, 여기에 "int"를 더해주면 됩니다.

시간 복잡도는 N / 4번 반복하므로 O(N)입니다.

 

핵심 코드 설명

N = int(input())
count = N // 4

#"long 문자열을 count번 반복하고, 그 뒤에 int 문자열을 더함
result = "long " * count + "int"

print(result)

3. 회고

 

  • 어려웠던 점: 문제의 규칙성이 명확해서 큰 어려움은 없었지만 long과 int 사이,  long과 long 사이에 공백이 들어가야 한다는 점을 조심해야 했습니다.
  • 개선할 점: for 반복문을 사용하여 count만큼 print("long", end=" ")를 호출하고 마지막에 print("int")를 호출하는 방식도 가능합니다. 하지만 Python의 문자열 곱셈 기능("long " * count)을 사용하면 코드가 훨씬 간결하고 직관적이 됩니다. "long"이 아닌 "long "처럼 문자열 자체에 공백을 포함시키는 것이 실수를 줄이는 좋은 방법이었습니다.