https://school.programmers.co.kr/learn/courses/30/lessons/120824
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 답안 :
1
2
3
4
5
6
7
8
9
10
|
def solution(num_list):
even = 0
odd = 0
for i in num_list: # num_list값에 접근
if i%2 == 0: # 2로 나눈 나머지가 0이면
even += 1 # (=짝수면) even값 1증가
else: # 2로 나눈 나머지가 0이 아니면
odd += 1 # (=홀수면) odd값 1증가
answer = [even, odd]
return answer
|
cs |
처음에 even, odd = 0 이라고 선언했는데
TypeError: cannot unpack non-iterable int object 가 발생했다.
파이썬은 변수 초기값 선언을 이렇게 하면 안되나보다.
개선안 :
1
2
3
4
5
|
def solution(num_list):
answer = [0,0]
for n in num_list:
answer[n%2]+=1
return answer
|
cs |
난 홀수 개수 변수, 짝수 횟수 변수를 선언해서 마지막에 answer에 넣었는데,
이렇게 처음부터 리스트로 선언했다.
숫자를 2로 나눈 나머지가 0이냐 1이냐에 따라 짝,홀을 판별하는데 이 나머지값을 바로 인덱스로 활용했다.
코드가 훨씬 짧아지고, if 연산이 필요없어졌다.
이 풀이처럼 배열 형태의 경우 인덱스 측면에서 접근하는 것을 항상 고려해야겠다.
'프로그래밍 > Python' 카테고리의 다른 글
파이썬 개념 - 자료형과 문자열 (0) | 2023.01.26 |
---|---|
프로그래머스_python lv0. 특정 문자 제거하기 (0) | 2023.01.25 |
프로그래머스_python lv0. 직각삼각형 출력하기 (0) | 2023.01.23 |
프로그래머스_python lv0. 문자열 뒤집기 (0) | 2023.01.20 |
파이썬 개념 - 리스트 내포(list comprehension) (0) | 2023.01.19 |