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
- BOJ
- 브루트포스
- koitp
- hackerrank
- 다이나믹 프로그래밍
- 잠실
- 에라토스테네스의 체
- 스택
- 맛집
- dynamic programming
- 삼성 SDS 대학생 알고리즘 특강
- 구현
- sw expert academy
- 백준
- DP
- 백트래킹
- 해커랭크
- 완전탐색
- 소수
- C++
- Algorithm
- SWEA
- 그리디
- 시뮬레이션
- dfs
- 알고리즘
- BFS
- PS
- 동적 계획법
- 삼성 기출
Archives
- Today
- Total
펭로그
[C++] 프로그래머스 코딩테스트 연습 - 완주하지 못한 선수 본문
문제링크 : https://programmers.co.kr/learn/courses/30/lessons/42576
algorithm 헤더의 sort를 사용하면 쉽게 풀 수 있다.
정렬된 후 participant와 completion 배열을 비교하다가 서로 다른 부분을 발견하게 되면 완주하지 못한 선수가 빠진 것임을 알 수 있기 때문에 아래와 같이 간단한 코드를 작성할 수 있다.
예를 들어 아래와 같이 두 배열을 정렬했을때
["abc", "abcd", "bcde", "cvfw"] - participant
["abc", "abcd", "cvfw"] - completion
"bcde"가 빠져있어서 2번 인덱스의 값이 서로 불일치하는 순간을 확인할 수 있다. 이때의 participant의 인덱스 값을 출력하면 정답이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <string> #include <vector> #include <algorithm> using namespace std; string solution(vector<string> participant, vector<string> completion) { sort(participant.begin(), participant.end()); sort(completion.begin(), completion.end()); int idx = 0; for(;idx < completion.size() && participant[idx] == completion[idx]; idx++); return participant[idx]; } | cs |
'Study > PS(Algorithm)' 카테고리의 다른 글
[C++] 백준 BOJ 11047 동전 0 (0) | 2019.01.30 |
---|---|
[C++] 백준 BOJ 2217 로프 (0) | 2019.01.30 |
[C++] 프로그래머스 코딩테스트 연습 - 전화번호 목록 (0) | 2019.01.29 |
[C++] 백준 BOJ 1475 방 번호 (0) | 2019.01.16 |
[C++] 백준 BOJ 1018 체스판 다시 칠하기 (0) | 2019.01.16 |
Comments