Table of Contents
코딩 테스트 문제를 풀 때 모든 변수를 미리 정의해 두는 것이 항상 좋은 것은 아닙니다. 하지만 주요 변수를 미리 정의하고, 문제를 해결하는 데 필요한 데이터를 적절히 초기화하는 것은 중요합니다. 이렇게 하면 코드를 작성하는 동안 혼란을 줄이고, 문제 해결에 집중할 수 있습니다. 또한, 코드의 가독성과 유지보수성을 높이는 데 도움이 됩니다.
다음은 코딩 테스트 문제를 풀 때 변수를 다루는 몇 가지 권장 사항입니다:
1. 주요 변수 초기화
문제를 해결하기 위해 필요한 주요 변수를 미리 정의하고 초기화합니다. 예를 들어, 다리를 건너는 트럭 문제에서는 시간, 대기 중인 트럭, 다리 위의 트럭, 현재 다리 위의 무게를 추적하는 변수를 초기화합니다.
2. 의미 있는 변수명 사용
변수명을 의미 있게 지어 코드의 가독성을 높입니다. 예를 들어, time
, truck_weights
, bridge
, current_weight_on_bridge
와 같은 변수명은 각각의 변수가 어떤 역할을 하는지 쉽게 이해할 수 있게 합니다.
3. 불필요한 변수는 피하기
문제를 해결하는 데 필요하지 않은 불필요한 변수를 사용하지 않도록 주의합니다. 불필요한 변수는 코드를 복잡하게 만들고, 버그를 발생시킬 가능성을 높입니다.
4. 변수의 역할에 맞는 범위
변수를 적절한 범위에서 선언하고 사용하는 것이 중요합니다. 예를 들어, 반복문 안에서만 필요한 변수는 반복문 내부에서 선언합니다.
예제 코드
다리 건너는 트럭 문제를 다시 살펴보면, 필요한 주요 변수를 미리 정의하고, 문제를 해결하는 데 필요한 데이터를 초기화합니다.
from collections import deque
def solution(bridge_length, weight, truck_weights):
# 초기화
time = 0
truck_weights = deque(truck_weights)
bridge = deque([0] * bridge_length) # 다리 위의 트럭 상태를 저장하는 큐
current_weight_on_bridge = 0 # 현재 다리 위의 트럭들의 총 무게
# 메인 루프
while truck_weights or current_weight_on_bridge > 0:
time += 1
# 다리에서 트럭 하나를 내보내고, 해당 트럭의 무게를 현재 다리 위의 총 무게에서 뺌
current_weight_on_bridge -= bridge.popleft()
# 다음 트럭을 다리에 올릴 수 있는지 확인
if truck_weights:
if current_weight_on_bridge + truck_weights[0] <= weight:
truck = truck_weights.popleft()
bridge.append(truck)
current_weight_on_bridge += truck
else:
bridge.append(0) # 다리의 길이를 유지하기 위해 0을 추가
return time
# 예제 테스트
print(solution(2, 10, [7, 4, 5, 6])) # 출력: 8
print(solution(100, 100, [10])) # 출력: 101
print(solution(100, 100, [10,10,10,10,10,10,10,10,10,10])) # 출력: 110
요약
- 필요한 주요 변수를 초기화하고 정의합니다.
- 의미 있는 변수명을 사용하여 코드의 가독성을 높입니다.
- 불필요한 변수를 피하고, 변수의 역할에 맞게 적절한 범위에서 선언합니다.
- 변수를 적절히 초기화하여 문제를 해결하는 데 집중할 수 있도록 합니다.
이렇게 하면 코딩 테스트 문제를 더 효율적으로 풀 수 있습니다.
'코딩테스트' 카테고리의 다른 글
[파이썬] 스택/큐 > 주식가격 (0) | 2024.05.23 |
---|---|
[파이썬] 스택/큐 > 기능개발 (0) | 2024.05.23 |
[파이썬] 스택/큐 > 다리를 지나는 트럭 (0) | 2024.05.21 |
DFS(Depth-First Search) vs BFS(Breadth-First Search) (0) | 2024.05.20 |
Floyd의 토끼와 거북이 알고리즘 (0) | 2024.05.20 |
- Total
- Today
- Yesterday
- #패스트캠퍼스 #패스트캠퍼스ai부트캠프 #업스테이지패스트캠퍼스 #upstageailab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- RAG
- LLM
- English
- Github
- LIST
- #패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #무료교육 #국비지원 #국비지원취업 #데이터분석취업 등
- Array
- 리스트
- Hugging Face
- 해시
- Numpy
- 티스토리챌린지
- #패스트캠퍼스 #패스트캠퍼스AI부트캠프 #업스테이지패스트캠퍼스 #UpstageAILab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- Python
- clustering
- 오블완
- 코딩테스트
- git
- 파이썬
- cnn
- speaking
- PEFT
- classification
- Transformer
- 손실함수
- recursion #재귀 #자료구조 # 알고리즘
- nlp
- Lora
- t5
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |