남녀 회원의 수치의 합의 최소값을 출력하면 된다.
문제 보자마자 든 생각은 큰것은 큰거끼리, 작은건 작은거끼리 모아서 빼는게 작지 않을까였다.
그래서 리스트를 받아 정렬하고 빼는 코드를 써 보았다.
1
2
3
4
5
6
7
8
9
10
11
12
|
#meeting
case = int(input())
for i in range(case):
n = int(input()) # 사람 수
man = list(map(int, input().split())) # 남자 회원
woman = list(map(int, input().split())) # 여자 회원
man.sort() # 정렬
result = 0 # 출력할 값
for k in range(n):
result += abs(man[k] - woman[k]) # 절댓값을 더함
print(result)
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
간단하다. 입력을 받고 정렬해서 뺀 값을 더하면 끝.
예제 넣으니 잘 나온다.
끝.
느낀점:
1. 생각보다 너무 간단하게 풀려서 놀랐다.
2. 이 방법이 왜 가장 효율적인지 수학적으로 좀 알고싶어서 관련 생각을 하던 도중, 댓글을 보니
이렇게 정렬하고 뺀 값을 더하는게 수학적으로 최적이라고 나와서 구글에 알고스팟 meeting문제를 검색해 보았지만, 딱히 수학적인 내용을 담은 글은 없었다. 왜인지 좀 아쉽..
3. 문제 난이도에 비해 내 코드가 너무 길다는 느낌을 받아서 다른사람이 푼 코드를 보니(알고스팟은 문제 정답을 맞추면 다른 사람의 코드를 볼 수 있다)
이런 식으로 파이썬을 짧고 이해하기 쉽게 짠 코드들이 몇 보였다.
이런것처럼 한눈에 봐선 어떻게 작동이 되는지 의문인 것도 있었지만, 그래도 코드를 짧고 효율적으로 쓰면서 보았을때 이해가 쉬운 코드를 짜게 더욱 노력해야겠다.
4. 코드를 쓸 때 그 전 포스팅까진 사진으로 했는데, color scripter (https://colorscripter.com/)를 쓰니 깔끔하고 코드 복사도 할 수 있고 좋아보인다. 다른 사람들은 syntax highliter라는 걸 쓰는거 같은데 그건 티스토리에 무언가 해야하는 일이 많은거 같아서 안하기로 했다.
'코테용 문제풀이 > 알고스팟' 카테고리의 다른 글
알고스팟 anagram 문제 파이썬으로 풀기 (0) | 2019.08.11 |
---|---|
알고스팟 zeroone 문제 파이썬으로 풀기 (0) | 2019.07.16 |
알고스팟 koogle 문제 파이썬으로 풀기 (0) | 2019.07.08 |
알고스팟 decode 문제 파이썬으로 풀기 (0) | 2019.07.03 |
알고스팟 asymtiling 문제 파이썬으로 풀기 (0) | 2019.06.24 |