Python으로 구현한 4641번 Doubles 문제 풀이입니다.
https://www.acmicpc.net/problem/4641
4641번: Doubles
2~15개의 서로 다른 자연수로 이루어진 리스트가 있을 때, 이들 중 리스트 안에 자신의 정확히 2배인 수가 있는 수의 개수를 구하여라. 예를 들어, 리스트가 "1 4 3 2 9 7 18 22"라면 2가 1의 2배, 4가 2의
www.acmicpc.net
while True :
data = list(map(int, input().split()))
if len(data) == 1 and data[0] == -1 :
break
result = 0
for i in range(len(data)-1) :
if data[i] % 2 == 0 :
if data[i] // 2 in data :
result += 1
print(result)
1. 입력받은 리스트의 길이가 1이고 첫번째 원소가 -1일 때까지 while문을 통해 반복 수행한다.
2. 반복문을 수행하는데, 리스트의 끝인 0은 리스트에 속하지 않기 때문에 범위를 len(data)-1 로 설정한다.
3. data 리스트의 값을 하나씩 확인하고, 그 값이 짝수일 경우 해당 값을 2로 나눈 몫이 리스트에 존재하는지 판단한다.
4. 몫이 리스트에 있을 경우 result 값을 1 증가시킨다.
5. for문 수행이 모두 끝나면 최종적으로 result 값을 출력한다.
'백준(Python) 풀이 > 구현' 카테고리의 다른 글
백준(Python) 4493번 가위 바위 보? 풀이 (0) | 2021.12.01 |
---|---|
백준(Python) 6321번 IBM 빼기 1 풀이 (0) | 2021.12.01 |
백준(Python) 5523번 경기 결과 풀이 (0) | 2021.12.01 |
백준(Python) 10810번 공 넣기 풀이 (0) | 2021.12.01 |
백준(Python) 2774번 아름다운 수 풀이 (0) | 2021.11.30 |