실행결과에 해당하는 프로그램 코드 작성
numbers = [273, 103, 5, 32, 65, 9, 72, 800, 99]
| 1번 실행결과 | 2번 실행결과 |
|---|---|
| 273 는 홀수입니다. | 273는 3 자릿수입니다. |
| 103 는 홀수입니다. | 103는 3 자릿수입니다. |
| 5 는 홀수입니다. | 5는 1 자릿수입니다. |
| 32 는 짝수입니다. | 32는 2 자릿수입니다. |
| 65 는 홀수입니다. | 65는 2 자릿수입니다. |
| 9 는 홀수입니다. | 9는 1 자릿수입니다. |
| 72 는 짝수입니다. | 72는 2 자릿수입니다. |
| 800 는 짝수입니다. | 800는 3 자릿수입니다. |
| 99 는 홀수입니다. | 99는 2 자릿수입니다. |
📝 1번 정답
numbers = [273, 103, 5, 32, 65, 9, 72, 800, 99]
for number in numbers:
if number % 2 == 0:
print(number, "는 짝수입니다.")
else:
print(number, "는 홀수입니다.")
숫자를 2로 나눴을 때 딱 떨어지면 짝수이므로 if 조건문을 이용하여 2로 나눴을 때 나머지의 유무를 체크 후 실행. (이때의 % 기호는 나눗셈의 나머지를 구하는 기호임)
아래의 05번 문제를 참고하면 다른 코드로도 실행이 가능하다.
numbers = [273, 103, 5, 32, 65, 9, 72, 800, 99]
holzzak = ["짝수", "홀수"]
for number in numbers:
print("{}는 {}입니다.".format(number, holzzak[number % 2]))
holzzak[number % 2] 중에서 'number % 2' 의 결과값이 0이면 holzzak 리스트 안의 0번째 요소가 출력되고 1이면 1번째 요소가 출력됨.
📝 2번 정답
numbers = [273, 103, 5, 32, 65, 9, 72, 800, 99]
for number in numbers:
format_a = "{}는 {} 자릿수입니다.".format(number, len(str(number)))
print(format_a)
길이값(len())을 구하려면 숫자를 문자열(str())로 변경해야 한다.
주어진 실행결과처럼 출력되도록 빈 칸 채우기
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
output = [[], [], []]
for number in numbers:
output[ ? ].append(number)
print(output)
| 실행결과 |
|---|
| [[1, 4, 7], [2, 5, 8], [3, 6, 9]] |
📝 정답
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
output = [[], [], []]
for number in numbers:
output[(number + 2) % 3].append(number)
#(number - 1) % 3 도 가능하다.
print(output)
'append()'는 numbers 안에 있는 요소 number를 ouput 리스트 안에 추가한다는 뜻의 함수이다.
numbers 리스트 안에 있는 요소들을 3으로 나누면 이처럼 나머지가 1, 2, 0을 계속 반복해서 돌게 된다.
1을 3으로 나누면 나머지가 1, 그럼 numbers 리스트의 요소 1은 output 리스트의 1번째 배열로 들어가게 됨. 2를 3으로 나누면 나머지가 2, numbers 리스트의 요소 2는 ouput 리스트의 2번째 배열로 들어가고 3은 나머지가 0이기 때문에 리스트의 0번째 배열로 들어가게 됨.
이것을 작은 숫자 순으로 맞추기 위해서 % 앞에 - 1 또는 + 2 가 먼저 계산되도록 괄호를 표시했다. 만약 작은 숫자 순으로 맞추지 않고 % 3만 하게 되면 결과값은 아래와 같다.
| 실행결과 |
|---|
| [[3, 6, 9], [1, 4, 7], [2, 5, 8] |
리스트 내부에 들어 있는 숫자가 몇 번 등장하는지 출력하는 코드작성
numbers = [1, 2, 6, 8, 4, 3, 2, 1, 9, 5, 4, 9, 7, 2, 1, 3, 5, 4, 8, 9, 7, 2, 3]
counter = {}
print(counter)
| 실행결과 |
|---|
| {1: 3, 2: 4, 6: 1, 8: 2, 4: 3, 3: 3, 9: 3, 5: 2, 7: 2} |
📝 정답
numbers = [1, 2, 6, 8, 4, 3, 2, 1, 9, 5, 4, 9, 7, 2, 1, 3, 5, 4, 8, 9, 7, 2, 3]
counter = {}
for number in numbers:
if number in counter:
counter[number] += 1
else:
counter[number] = 1
print(counter)
numbers 리스트 안에 있는 요소들이 조건문을 거쳐가면서
// 만약 1이 counter 안에 있으면 +1, 그렇지 않으면 1로 새로 생성. 다음 숫자 2가 counter 안에 있으면 +1, 그렇지 않으면 1로 새로 생성. //
이런 식으로 실행된다.
1: 1
2: 1
6: 1
8: 1
4: 1
3: 1
쭉 순서대로 진행되다가 처음으로 중복되는 숫자 2가 등장하는데 이 때는 첫번째 조건 '2가 counter 안에 있으면 +1'에 충족되기 때문에 새로 생성되지 않고 기존에 있는 2에 +1이 된다.
1: 1
2: 2
6: 1
8: 1
4: 1
3: 1
.
.
.
어떤 자료형인지 확인하는 방법을 이용하여 실행결과와 같이 출력되게끔 코드 작성
character = {
"name": "기사",
"level": 12,
"items": {
"sword": "불꽃의 검",
"armor": "풀플레이트"
},
"skill": ["베기", "세게 베기", "아주 세게 베기"]
}
| 실행결과 |
|---|
| name: 기사 |
| level: 12 |
| sword: 불꽃의 검 |
| armor: 풀플레이트 |
| skill: 베기 |
| skill: 세게 베기 |
| skill: 아주 세게 베기 |
📝 정답
character = {
"name": "기사",
"level": 12,
"items": {
"sword": "불꽃의 검",
"armor": "풀플레이트"
},
"skill": ["베기", "세게 베기", "아주 세게 베기"]
}
for key in character:
if type(character[key]) is dict:
for item in character[key]:
print("{}: {}".format(item, character[key][item]))
elif type(character[key]) is list:
for skill in character[key]:
print("{}: {}".format(key, skill))
else:
print("{}: {}".format(key, character[key]))
딕셔너리의 요소에 접근할 때는 리스트처럼 딕셔너리 뒤에 대괄호([ ])를 입력하고 내부에 인덱스처럼 키를 입력한다.
ex) print(character["level"]) >>> 12
'character의 key값이 dict라면 (if), character의 key값이 list라면 (elif), 둘 다 아니라면? (else)'의 흐름으로 조건문을 먼저 작성한다. 그 뒤에 순서대로 반복문을 넣고 해당하는 자료의 키 변수(item, skill)를 지정한 후, 어디에 어떤 값을 넣어 출력할 건지 작성하면 된다.