음 풀긴 풀었는데 맞은 풀이일까? 답은 맞는 것 같은데...
처음 array_a와 array_b의 리스트를 만들 때 원소를 int로 받는 법을 까먹었는지 몰라서그런지 좀 이상하게 짰음
1. 내 풀이
n, k = map(int, input().split())
array_a = sorted(input().split())
array_b = sorted(input().split(), reverse=True)
for i in range(k):
if array_a[i] < array_b[i]:
array_a[i], array_b[i] = array_b[i], array_a[i]
else:
continue
result = 0
for j in range(n):
result += int(array_a[j])
print(result)
1-1. 풀이 도중 생각
1) 어? 리스트의 원소를 Int로 어떻게 받더라..?
2) 리스트의 원소를 int로 받았으면 sum으로 한 방에 계산할 수 있을텐데
2. 정답
n, k = map(int, input().split())
array_a = sorted(list(map(int, input().split())))
array_b = sorted(list(map(int, input().split())))
for i in range(k):
if array_a[i] < array_b[i]:
array_a[i], array_b[i] = array_b[i], array_a[i]
else:
break
print(sum(array_a))
3. 새로 알게 된 것 or 새삼 다시 알게 된 것
1) 나는 array_a의 원소가 더 클 때는 continue를 써서 무시하는 방법을 썼는데 책에서는 break를 썼다... 왜???
2) map object를 다시 list()로 묶어주면 list 결과물을 받아볼 수 있다
3) sum(list)를 통해 list의 원소들을 한 방에 더할 수 있다 (int와 str의 합은 x)
'CS > 알고리즘' 카테고리의 다른 글
[이코테] 정렬 - 안테나 (0) | 2023.02.12 |
---|---|
[이코테] 정렬 - 국영수 (0) | 2023.02.11 |
[이코테] 정렬 - 성적이 낮은 순서로 학생 출력하기 (0) | 2023.02.09 |
[이코테] 정렬 - 위에서 아래로 (0) | 2023.02.08 |
[이코테] DFS & BFS - 미로 탈출 (0) | 2023.02.03 |