728x90
반응형
1. 문제 설명
2. 풀이과정
해당 문제는 창문을 열고 닫는 과정을 반복하며 최종적으로 열려있는 창문의 개수를 구하는 문제이다.
각 수를 돌아가며 창문을 열고 닫을 수 있지만 위 문제에서 창문의 최대 개수는 21억 개까지 가능하므로 모두 구하는 것은 효율적이지 못한 방법이다.
창문의 개수가 5개이면 최종적으로 1, 4번 창문이 열려있다.
창문의 개수가 10개이면 최종적으로 1, 4, 9번 창문이 열려있다.
창문의 개수가 20개이면 최종적으로 1, 4, 9, 16번 창문이 열려있다.
위 예시를 보면 창문 개수를 넘지 않는 수 중 제곱수 번호에 있는 창문들만 최종적으로 열려있게 된다는 것을 확인할 수 있다. 따라서 위 규칙을 적용해 최종적으로 열려있는 창문의 개수를 구하면 된다.
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- 창문의 개수이자 사람의 수를 입력받는다. N = int(sys.stdin.readline())
- 최종적으로 열린 창문의 개수를 저장할 변수를 생성하고 초기화한다. num = 0
- 만약 창문의 개수에 1을 더한 값의 제곱이 창문의 개수보다 같거나 작으면 while ((num + 1) ** 2 <= N)
- 열려있는 창문의 개수를 늘린다. num += 1
- 최종적으로 열려있는 창문의 개수를 출력한다. print(num)
반응형
3. 소스코드
import sys
N = int(sys.stdin.readline())
num = 0
while ((num + 1) ** 2 <= N):
num += 1
print(num)
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 18258번 : 큐 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.04 |
---|---|
[백준] 12789번 : 도키도키 간식드리미 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.03 |
[백준] 4949번 : 균형잡힌 세상 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.02 |
[백준] 28278번 : 스택 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.01 |
[백준] 17103번 : 골드바흐 파티션 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.29 |
[백준] 4134번 : 다음 소수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.28 |
[백준] 2485번 : 가로수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.27 |
[백준] 1735번 : 분수 합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.26 |