7056 : 두 딕셔너리 합치기
•시간제한: 1.000 S
•메모리제한: 256 MB
•제출: 1
•통과: 1
•만든사람: suakii
문제 설명
두 개의 서로 다른 딕셔너리 A와 B를 하나로 병합하는 프로그램을 작성하십시오.
병합 과정에서 키(Key) 충돌이 발생할 경우, 해당 키의 값(Value) 중 더 큰 값을 선택하여 유지하는 정책을 따릅니다.
결과는 키의 사전순(오름차순)으로 정렬하여 출력해야 합니다.
[제약 조건]
• 딕셔너리 크기 $N, M$: $0 \le N, M \le 500$
병합 과정에서 키(Key) 충돌이 발생할 경우, 해당 키의 값(Value) 중 더 큰 값을 선택하여 유지하는 정책을 따릅니다.
결과는 키의 사전순(오름차순)으로 정렬하여 출력해야 합니다.
[제약 조건]
• 딕셔너리 크기 $N, M$: $0 \le N, M \le 500$
입력 설명
첫째 줄에 딕셔너리 A의 크기 N이 주어집니다. (0 ≤ N ≤ 500)
둘째 줄부터 N개의 줄에 걸쳐 딕셔너리 A의 "키 값" 쌍이 공백으로 구분되어 주어집니다. 값은 정수형태입니다.
이후 다음 줄에 딕셔너리 B의 크기 M이 주어집니다. (0 ≤ M ≤ 500)
그 다음 줄부터 M개의 줄에 걸쳐 딕셔너리 B의 "키 값" 쌍이 공백으로 구분되어 주어집니다.
둘째 줄부터 N개의 줄에 걸쳐 딕셔너리 A의 "키 값" 쌍이 공백으로 구분되어 주어집니다. 값은 정수형태입니다.
이후 다음 줄에 딕셔너리 B의 크기 M이 주어집니다. (0 ≤ M ≤ 500)
그 다음 줄부터 M개의 줄에 걸쳐 딕셔너리 B의 "키 값" 쌍이 공백으로 구분되어 주어집니다.
출력 설명
병합된 최종 딕셔너리의 내용을 키의 사전순으로 한 줄에 하나씩 "키: 값" 형식으로 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
3
apple 10
banana 20
cherry 30
3
banana 25
cherry 15
date 40
출력 예시
COPY
복사되었습니다!
복사되었습니다!
apple: 10
banana: 25
cherry: 30
date: 40
도움
두 딕셔너리의 병합은 파이썬의
update() 메소드나 {**dict_a, **dict_b} 문법을 이용할 수 있으나, 값 충돌 처리가 필요하므로 직접 반복문을 활용해 값을 조건부 갱신하는 것이 안전합니다.