티스토리 뷰
728x90
https://www.acmicpc.net/problem/12927
- 문제 :
강호는 전구 N개를 가지고 있다. 전구는 1번부터 N번까지 번호가 매겨져 있으며, 일렬로 놓여져 있다. 전구는 켜져있거나 꺼져있다.
강호는 모든 전구를 끄려고 한다. 강호는 전구를 켜고 끌 수 있는 스위치 N개를 가지고 있고, 스위치도 1번부터 N번까지 번호가 매겨져 있다. i번 스위치는 i의 배수 번호를 가지는 전구의 상태를 모두 반전시킨다.
현재 전구의 상태가 주어졌을 때, 모든 전구를 끄기 위해서 스위치를 몇 번 눌러야하는지 구하는 프로그램을 작성하시오.
- 풀이 :
맨 앞 전구부터 스위치가 켜져있다면 끄는 동작을 반복하여 스위치를 누르는 횟수를 카운트한다.
- 소스코드 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import sys
input = sys.stdin.readline
if __name__ == "__main__":
light = list(input().strip())
ans = 0
for i in range(len(light)):
if light[i] == 'Y':
for j in range(i,len(light),i+1):
if light[j] == 'Y':
light[j] = 'N'
else :
light[j] = 'Y'
ans += 1
print(ans)
|
cs |
320x100
'Algorithm > Greedy' 카테고리의 다른 글
(Python) - BOJ(13305번) : 주유소 (0) | 2022.02.09 |
---|---|
(Python) - BOJ(13019번) : A를 B로 (0) | 2022.02.09 |
(Python) - BOJ(11508번) : 2+1 세일 (0) | 2022.02.07 |
(Python) - BOJ(11501번) : 주식 (0) | 2022.02.07 |
(Python) - BOJ(11497번) : 통나무 건너뛰기 (0) | 2022.02.07 |
댓글
© 2022 WonSeok, All rights reserved