728x90
반응형
이번 글은 '이것이 취업을 위한 코딩테스트다' 내의 문제를 풀고 정답 코드를 정리한 것입니다.
이것이 취업을 위한 코딩 테스트다 with 파이썬 | 나동빈 - 교보문고
이것이 취업을 위한 코딩 테스트다 with 파이썬 | IT 취준생이라면 누구나 입사하고 싶은 카카오ㆍ삼성전자ㆍ네이버ㆍ라인! 취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생이라면 누구나
product.kyobobook.co.kr
문제
정답 코드
파이썬 Ver.
자바스크립트 Ver.
문제 풀이
간단하게 for문을 돌면서 현재 숫자와 다음 숫자를 비교하여 각각 조건에 맞는 횟수를 증가시키면 되는 문제였다. 연속된 숫자를 어떻게 처리해야 하나 라는 생각에 사로잡혀 간단한 해결책을 떠올리지 못했다.
입력값을 앞에서부터 하나씩 확인하며 현재 숫자와 다음 숫자가 다르면서 다음 숫자가 0일 경우 1로 변경하고, 1일 경우 0으로 변경하는 횟수를 각각 증가시키면 된다. 계산을 마친 후 다음 숫자를 '0으로 바꾸는 횟수'와 '1로 바꾸는 횟수' 중 적은 값을 반환하면 된다.
print()를 활용하여 각 변수의 변화 과정을 살펴보면 다음과 같다.
# input 0001100 현재 숫자(data[i]) 0 다음 숫자(data[i + 1]) 0 ========== 현재 숫자(data[i]) 0 다음 숫자(data[i + 1]) 0 ========== 현재 숫자(data[i]) 0 다음 숫자(data[i + 1]) 1 현재 숫자와 다음 숫자 다름! 다음 숫자를 0으로 바꾼 횟수(count0) 1 다음 숫자를 1로 바꾼 횟수(count1) 1 # data[0]이 0이므로 1부터 시작 ========== 현재 숫자(data[i]) 1 다음 숫자(data[i + 1]) 1 ========== 현재 숫자(data[i]) 1 다음 숫자(data[i + 1]) 0 현재 숫자와 다음 숫자 다름! 다음 숫자를 0으로 바꾼 횟수(count0) 1 다음 숫자를 1로 바꾼 횟수(count1) 2 ========== 현재 숫자(data[i]) 0 다음 숫자(data[i + 1]) 0
728x90
반응형
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
[이코테] 그리디_볼링공 고르기(파이썬 python) (0) | 2022.11.29 |
---|---|
[이코테] 그리디_만들 수 없는 금액(파이썬/자바스크립트) (0) | 2022.11.29 |
[이코테] 그리디_곱하기 혹은 더하기(파이썬/자바스크립트) (0) | 2022.11.25 |
[이코테] 그리디_모험가 길드(파이썬/자바스크립트) (0) | 2022.11.24 |
[이코테] 그리디_숫자 카드 게임 (0) | 2022.09.16 |
댓글