ㅋㅋㅋㅋㅋㅋ 정답 보니까 진짜 허무해지는 문제...
1. 내 풀이
n = int(input())
data = list(map(int, input().split()))
distance = {}
for i in range(n):
tmp = 0
for j in range(0, n, -1):
if j == 0:
tmp += abs(data[i] - data[j])
distance[tmp] = i
else:
tmp += abs(data[i]-data[j])
keys = list(distance.keys())
keys.sort()
print(distance[keys[0]])
1-1. 풀이 도중 생각
1) 계수 정렬로 하기에는 공백이 너무 많이 생길 것 같은데?
2) 거리를 다 구해서 각 집 위치를 키를 가지는 딕셔너리를 만들어야겠다
3) value로 key 찾는게 어려우니까 거리를 key로, 집 위치를 value로 해보자
4) 음... key값만 뽑아서 sort하려고 하는데 안 되네
2. 정답
중간값을 구하면 되지 않을까 막연히 생각은 했지만 진짜로 그렇게 풀어야 하네? ㅋㅋㅋ
n = int(input())
data = list(map(int, input().split()))
data.sort()
print(data[(n-1)//2]
3. 새로 알게 된 것 or 새삼 다시 알게 된 것
충격: dictionary도 sort 혹은 sorted로 정렬 가능. 단, 출력은 tuple pair로 이루어진 list를 반환
- 그냥 sort만 하면 key값을 기준으로 sort
- lambda item : item[1] 처럼 lambda를 이용하면 value를 기준으로 sort 가능함
'CS > 알고리즘' 카테고리의 다른 글
[이코테] 다이나믹 프로그래밍 - 1로 만들기 (0) | 2023.02.21 |
---|---|
[이코테] 실패율 (0) | 2023.02.12 |
[이코테] 정렬 - 국영수 (0) | 2023.02.11 |
[이코테] 정렬 - 두 배열의 원소 교체 (0) | 2023.02.10 |
[이코테] 정렬 - 성적이 낮은 순서로 학생 출력하기 (0) | 2023.02.09 |