일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- webpack
- useAppDispatch
- Promise
- Cypress
- ESlint
- map
- 이분 검색
- 인터섹션
- 반공변성
- 타입 좁히기
- dfs
- Jest
- 무한 스크롤
- TS
- 투포인터
- async/await
- 리터럴 타입
- CORS
- autosize
- SSR
- CI/CD
- 결정 알고리즘
- React
- 공변성
- recoil
- RTK Query
- 호이스팅
- app router
- tailwind
- 태그된 유니온
Archives
- Today
- Total
짧은코딩
두 배열의 원소 교체 본문
반응형
-처음에 생각한 풀이
처음엔 max, min 메소드를 이용하면 될 것이라고 생각했지만 이거로는 충분하지 않았다.
-풀이
n, k = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a.sort() #오름차순
b.sort(reverse=True) #내림차순
for i in range(k):
if a[i] < b[i]:
a[i], b[i] = b[i], a[i]
else:
break
print(sum(a))
a를 오름차순, b를 내림차순으로 입력 받는다. 그리고 k만큼 반복하면서 비교한다.
만약 a가 b보다 작으면 두 집합의 원소를 바꾼다.
a가 b보다 같거나 커지면 반복문을 종료한다.
이 문제에서 입력 조건으로 두 배열의 원소가 최대 100,000개까지 입력될 수 있어서 O(NlogN)을 보장하는 정렬 알고리즘을 사용해야 한다.
반응형
'코딩 테스트(Python) > 이것이 취업을 위한 코딩 테스트다' 카테고리의 다른 글
트리(sys 라이브러리) (0) | 2022.06.15 |
---|---|
이진 탐색 (0) | 2022.05.30 |
성적이 낮은 순서로 학생 출력하기(람다 함수 사용) (0) | 2022.05.27 |
정렬(2)-퀵 정렬, 계수 정렬, 라이브러리 (0) | 2022.05.27 |
정렬(1)-선택, 삽입 정렬 (0) | 2022.05.27 |
Comments