https://softeer.ai/practice/7626
Softeer - 현대자동차그룹 SW인재확보플랫폼
softeer.ai
✅ 산타가 방문할 가능성이 있는 서로 다른 두 마을 조합의 수를 구하는 문제이다.
✅ 산타가 방문할 가능성이 있는 마을은 가장 거리가 가까운 두 마을이므로, 먼저 각 마을 간 최소 거리를 구한 후 모든 마을의 위치 조합을 구한다.
✅ 파이썬에서는 itertools 라이브러리를 사용해서 쉽게 조합을 얻을 수 있다.
✅ 각 마을 간 모든 조합을 구한 후, 최소 거리를 만족하는 조합만 카운트한다.
📝 내가 작성한 코드
import sys
from itertools import combinations
n = int(input())
towns = list(map(int, input().split()))
answer = 0
# 각 마을 간 최소 거리 구하기
dist = towns[1]-towns[0]
for idx1 in range(len(towns)-1, 0, -1):
for idx2 in range(idx1):
if towns[idx2+1] - towns[idx2] < dist:
dist = towns[idx2+1]-towns[idx2]
# 모든 마을 위치 조합 구하기
towns = list(combinations(towns,2))
# 조합에서 마을간의 거리가 dist와 일치하는 경우에 answer + 1
for town in towns:
a,b = town
if b-a == dist:
answer += 1
print(answer)
좀 더 깔끔하게 풀 수 있는 방법이 있을 것 같은데...ㅠㅠ
'개발 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 캐릭터의 좌표 (0) | 2024.02.23 |
---|---|
[Softeer] 위험한 효도 (0) | 2024.02.22 |
[Softeer] 근무 시간 (0) | 2024.02.22 |
[프로그래머스] 모의고사 (0) | 2024.02.22 |
[프로그래머스] 배열 조각하기 (0) | 2024.02.15 |