Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- Gold 5
- 그리디
- 코드리뷰
- 2020 KAKAO BLIND
- 부스트코스
- Web
- 월간 코드 챌린지
- Gold 4
- Level 4
- 구현
- DP
- 2020 카카오 인턴십
- 브루트포스
- c++
- 프로그래머스
- BFS
- 백준
- Level 3
- 스택/큐
- DFS
- 시뮬레이션
- level 1
- 삼성 SW 역량 테스트
- 백트래킹
- Level 2
- next_permutation
- 코드 리뷰
- SWEA
- 2019 KAKAO BLIND
- pass
Archives
- Today
- Total
Min:D's Devlog
[프로그래머스][해시][C++] 완주하지 못한 선수 본문
문제
프로그래머스 해시 - 완주하지 못한 선수 (Level 1)
문제 풀이
접근 방식
이 문제는 완주하지 않은 한 명의 선수를 찾는 문제이다.
해시를 사용해서 문제를 해결해도 되지만,
정렬을 사용하면 더 쉽게 구현할 수 있을 것 같아 정렬을 하여 문제를 해결하였다.
우선 참여 선수 배열과 완주 선수 배열을 sort를 사용하여 정렬해주었고,
완주 선수의 수만큼 for문을 수행하며 이름이 일치하지 않는 경우일 때의 이름을 리턴해주었다.
for문에서 일치하지 않는 이름을 찾지 못한 경우에는 마지막 참여 선수가 완주하지 못한 것이므로
가장 마지막에 위치한 선수의 이름을 리턴해주어 문제를 해결하였다.
풀이 코드 - C++
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(vector<string> participant, vector<string> completion) {
string answer = "";
sort(participant.begin(),participant.end());
sort(completion.begin(),completion.end());
int len = completion.size();
for(int i = 0 ; i < len ; i++){
if(participant[i] != completion[i])
return participant[i];
}
return participant[len];
}
실행 결과
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][스택/큐][C++] 기능개발 (0) | 2020.12.07 |
---|---|
[프로그래머스][월간 코드 챌린지 시즌 1][C++] 쿼드압축 후 개수 세기 (0) | 2020.11.19 |
[프로그래머스][월간 코드 챌린지 시즌 1][C++] 3진법 뒤집기 (0) | 2020.11.16 |
[프로그래머스][힙][C++] 더 맵게 (0) | 2020.10.28 |
[프로그래머스][해시][C++] 베스트앨범 (0) | 2020.10.26 |
Comments