일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Codility
- c
- skt membership
- 통신사할인
- spring
- 에라토스테네스의 체
- margin
- SK바이오사이언스
- pandas
- 포토샵
- 상태
- 백준
- dataframe
- 알고리즘
- 강화학습
- stl
- grid
- Javascript
- series
- 소수
- Gap
- Design Pattern
- Flexbox
- Photoshop
- align-items
- Prefix Sums
- 확률
- CSS
- 수학
- c++
Archives
- Today
- Total
sliver__
[프로그래머스] - 완주하지 못한 선수 본문
728x90
안녕하세요~
디벨로퍼입니다~~
오늘은 프로그래머스 완주하지 못한 선수를 풀어보겠습니다.
https://programmers.co.kr/learn/courses/30/lessons/42576
코딩테스트 연습 - 완주하지 못한 선수
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수
programmers.co.kr
========================================================================
[문제]
[제한사항]
[입출력 예시 설명]
========================================================================
제한사항에 보면 동명이인이 있을 수 있고
배열의 길이는 100,000만 이하네요.
O(n)에 처리를 해야 통과할 것 같습니다.
제출한 코드는 아래와 같습니다.
#include <string>
#include <vector>
#include <unordered_map>
#include <iostream>
using namespace std;
string solution(vector<string> participant, vector<string> completion) {
string answer = "";
unordered_map<string ,int> um;
for(vector<string>::iterator iter = participant.begin(); iter != participant.end(); iter++)
{
um[*iter]++;
}
for(vector<string>::iterator iter = completion.begin(); iter != completion.end(); iter++)
{
um[*iter]--;
}
for(unordered_map<string, int>::iterator iter = um.begin(); iter != um.end(); iter++)
{
if(iter->second > 0)
{
answer = iter->first;
break;
}
}
return answer;
}
unordered_map으로 참가자들을 넣고 수를 셉니다.
그리고 완주자의 수를 빼서 0보다 크면 완주하지 못한 사람이라고 판단했습니다.
TC중 속도가 제일 느린 속도는 37.88ms가 나왔습니다.
728x90
'CS > 알고리즘' 카테고리의 다른 글
이분탐색 (binary search) / 파라메트릭 서치 (parametric search) (1) | 2023.10.02 |
---|---|
DFS & 다익스트라 (0) | 2023.10.01 |
백준 - 분해합(2231) (0) | 2021.11.19 |
백준 - 블랙잭(2798) (0) | 2021.11.19 |
백준 - 피보나치 수 5 (0) | 2021.11.18 |
Comments