구현 개념
머릿속에 있는 알고리즘을 정확하고 빠르게 프로그램으로 작성하는 것
동일한 알고리즘이면 더 간결하고 효율적인 코드가 잘 작성된 코드
아이디어 떠올리는 것과 별개로 구현 능력은 실무에서도 매우 중요
유형
완전 탐색
- 모든 경우의 수를 빠짐없이 다 계산하는 해결 방법
- 모든 경우의 수를 다 계산
- 반복문 혹은 재귀 함수를 적절히 사용하여 예외 케이스 모두 확인
- 일반적으로 DFS/BFS 알고리즘 이용
시뮬레이션
- 문제에서 제시하는 논리나 동작 과정을 그대로 코드로 옮겨야 하는 유형
- 완전 탐색과 해결 방법 비슷, 복잡한 구현 요구사항을 그대로 코드로 작성
원소를 나열하는 모든 경우의 수를 고려해야 하는 상황에서 보통 순열이나 조합 라이브러리 사용
→ 파이썬 표준 라이브러리 itertools로 쉽게 구현
문제
해설
문제에서 요구하는 바를 그대로 구현하면 해결할 수 있는 문제
정수형 데이터가 입력으로 들어왔을 때, 이를 각 자릿수로 구분하여 합 계산
파이썬의 경우, 입력 데이터가 문자열 → 정수형으로 변환, 합 변수에 더하기
풀이
n = input()
length = len(n) # 점수값의 총 자릿수
summary = 0
# 왼쪽 부분의 자릿수 합 더하기
for i in range(length // 2):
summary += int(n[i])
# 오른쪽 부분의 자릿수 합 빼기
for i in range(length // 2, length):
summary -= int(n[i])
# 왼쪽 부분과 오른쪽 부분의 자릿수 합이 동일한지 검사
if summary == 0:
print("LUCKY")
else:
print("READY")
해석
변수 : 점수 N, 점수의 자릿수 length, 점수 처리 summary
1. 점수 N 입력받기
2. 점수 N의 자릿수 length 구하기
3. 점수 N의 왼쪽 부분 자릿수 합 summary에 더하기
4. 점수 N의 오른쪽 부분 자릿수 합 summary에 빼기
5. summary를 비교하여 0이면 LUCKY, 아니면 READY 출
'Programming > 알고리즘 & 코테' 카테고리의 다른 글
[구현] 09.문자열 압축 (유형별 기출문제, 이것이 코딩테스트다 with 파이썬) (0) | 2024.01.22 |
---|---|
[구현] 08.문자열 재정렬 (유형별 기출문제, 이것이 코딩테스트다 with 파이썬) (1) | 2024.01.22 |
[그리디] 06.무지의 먹방 라이브 (유형별 기출문제, 이것이 코딩테스트다 with 파이썬) (1) | 2024.01.17 |
[그리디] 04.만들 수 없는 금액 (유형별 기출문제, 이것이 코딩테스트다 with 파이썬) (0) | 2024.01.16 |
[그리디] 03.문자열 뒤집기 (유형별 기출문제, 이것이 코딩테스트다 with 파이썬) (1) | 2024.01.15 |