코딩 테스트 오답노트
코딩 테스트 오답노트
코딩 테스트 오답노트
코딩 테스트 오답 노트
1. Anagram
오답
- 문자열 정렬 후 erase로 하나씩 제거하며 매칭
- greedy 방식으로 같은 문자 “찾아서 지우기”
1
2
sort(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
문제점
- 순서는 중요하지 않음
- 빈도 체크만 하면 됨
정답
- 문자 개수 비교 문제로 변환
1
2
count1[c], count2[c]
abs(count1 - count2) // 합산 절대값
2. map + struct Item 설계 문제
문제점 1: operator< 설계 오류
1
attackPower → rarity → name (비일관 비교)
문제 분석
- strict weak ordering 위반 가능성
- map 내부 정렬 기준이 애매해짐
- key 비교 기준과 실제 사용 기준(name)이 다름
정답
1
2
3
4
5
6
7
if (attackPower != other.attackPower)
return attackPower < other.attackPower;
if (rarity != other.rarity)
return rarity < other.rarity;
return name < other.name;
문제점 2: map을 선형 탐색처럼 사용
1
for (auto& i : shop)
문제 분석
- map의 O(log N) 탐색 구조 무시
- key 기반 자료구조 장점 상실
정답
1
auto it = shop.find(item);
3. MyVector 구현
문제점 : 메모리 할당 방식 혼용
1
malloc(...) + delete[]
문제 분석
- malloc 은 free
- new 는 delete
정답
1
2
Data = new T[Capacity];
Size = 0;
1
T* New = new T[Capacity];
This post is licensed under CC BY 4.0 by the author.