코딩은 체육과목 입니다
문제는 다음과 같습니다.
이 문제는 C++개념을 주제로 야기 하는 거 같지만, 그렇지 않습니다. 이 문제의 줄거리 주인공은 C++을 잘못 이해해서
long int 는 4바이트 정수까지 저장할 수 있는 자료형이고 long long int 는 8바이트 정수까지 저장할 수 있다고 생각합니다.
이런 규칙 때문에 long long long int는 12바이트 정수형을 저장할 수 있을 거라고 생각합니다.
이는 잘못된 생각이며, 문제를 위해 만들어진 사고 방식입니다.
long long long int와 같은 형태는 실제 C++에서는 사용할 수 없습니다.
문제의 입력 조건은 4<=N<=1000 , N:4의 배수 입니다.
N이 4의 배수이기 때문에 N을 4로 나눈 값 만큼 long 을 출력하면 되는 문제입니다.
저의 해답 코드는 다음과 같습니다.
N = int(input())
print('long '*int(N/4),end='')
print('int')
직관적인 코드입니다.
4의 배수 만큼 long(공백)을 출력하고 다 출력 했으면 마지막 int를 줄 바꿈 없이 이어줬습니다.
이 문제는 end=' ' 사용법을 아는지와 모르는지에 따라 풀이법이 다를 것이라고 생각합니다.
간단하게 end= ' '에 대해서 소개하겠습니다.
Python에서 end=' '는 print() 함수의 출력 끝부분을 어떻게 처리할지 지정하는 매개변수입니다.
기본적인 특징:
- print() 함수는 기본적으로 출력 후 자동으로 줄바꿈을 합니다(end='\n'가 기본값)
- end=' '를 지정하면 줄바꿈 대신 공백 한 칸으로 대체됩니다
# 기본 print
print("Hello")
print("World")
# 출력:
# Hello
# World
# end=' ' 사용
print("Hello", end=' ')
print("World")
# 출력:
# Hello World
위에서 언급한 것 처럼 사실 이미 print() 에서 매개변수로 자리잡고 있는 end는 이미 설정되어 있습니다.
저희가 print() 하게 되면 자동 줄바꿈이 되는데 이것이 end='\n' 기본값으로 저장되어 있기 때문입니다.
이번 문제의 정답 비율은 약 63%입니다. 정답 비율이 이전 문제들보다 월등히 높습니다.
이번 문제의 오답 코드는 틀렸습니다. 결과 보다는 출력 형식이 잘못되었습니다. 의 결과가 많을 거 같습니다.
다음은 공개된 사람의 오답 코드입니다.
출력 형식이 잘못된 것을 알 수 있습니다. 이 코드는 저와 비슷한 코드이지만, ,(콤마)로 이었기 때문에 틀렸습니다.
,(콤마)의 역할을 명확히 알고 있어야 합니다. print( ) 구문 안에서 ,(콤마)의 역할은 자료형을 연결해주는 역할입니다.
즉 자료형이 달라도 연결을 해주며 이는 공백으로 구분합니다. 따라서 +가 아닌이상 같은 자료형이 들어와도 ,(콤마)를 사용하게 되면 공백으로 이를 구분하게 되죠
실제로 코드를 실행했을 때 공백이 2칸 생기는 것을 알 수 있습니다.
이를 주의하고 코딩하셔야 하며 명확한 역할을 하고 사용하는 것과 모르고 사용하는 것은 천지차이라고 생각합니다.
'BaekJoon Reivew' 카테고리의 다른 글
단계별로 풀어보기 백준_11021번 (0) | 2025.02.07 |
---|---|
단계별로 풀어보기 백준_15552번 (0) | 2025.02.07 |
단계별로 풀어보기 백준_25304번 (0) | 2025.02.06 |
단계별로 풀어보기 백준_8393번 (0) | 2025.02.06 |
단계별로 풀어보기 백준_10950번 (0) | 2025.02.06 |