1. 문제
programmers.co.kr/learn/courses/30/lessons/17676
2. 풀이
1) 타임별 시작 시간과 종료 시간을 구한다.
2) pair vector에 넣는다.
3) 새1. 문제
programmers.co.kr/learn/courses/30/lessons/17676
코딩테스트 연습 - [1차] 추석 트래픽
입력: [ "2016-09-15 20:59:57.421 0.351s", "2016-09-15 20:59:58.233 1.181s", "2016-09-15 20:59:58.299 0.8s", "2016-09-15 20:59:58.688 1.041s", "2016-09-15 20:59:59.591 1.412s", "2016-09-15 21:00:00.464 1.466s", "2016-09-15 21:00:00.741 1.581s", "2016-09-1
programmers.co.kr
2. 풀이
1) 타임별 시작 시간과 종료 시간을 구한다. (밀리세컨드로 변환)
2) pair vector에 넣는다.
3) 새로운 타임이 시작하기 전 1초의 구간(즉 새로운 타임의 시작시간 -999 ~ 새로운 타임의 시작 시간)동안
구간의 시작보다 늦게 끝나면서 && 구간의 끝보다 일찍 시작하는 타임을 찾는다.
4) answer를 갱신해가며 최대값을 구한다.
3. 코드
#include <string>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
int solution(vector<string> lines) {
vector <pair<int,int>> times;
if(lines.size() == 1){return 1;}
//시작시간 구하기
for(int i = 0; i < lines.size();i++){
int start_time = 0;
int end_time = 0;
int during_time = 0;
pair <int,int> p;
//종료시간 구하기
end_time += 36000000 * (lines[i][11]-'0');
end_time += 3600000 * (lines[i][12]-'0');
end_time += 600000 * (lines[i][14]-'0');
end_time += 60000 * (lines[i][15]-'0');
end_time += 10000 * (lines[i][17]-'0');
end_time += 1000 * (lines[i][18]-'0');
end_time += 100 * (lines[i][20]-'0');
end_time += 10 * (lines[i][21]-'0');
end_time += 1 * (lines[i][22]-'0');
//진행시간 구하기
for(int j = 24;j<lines[i].length() -1; j++){
if(j == 24){during_time += (lines[i][j]-'0') * 1000;}
else if(j == 25){continue;}
else{during_time += (lines[i][j]-'0') * pow(10, 28 - j);}
}
//시작시간 구하기
start_time = end_time - during_time + 1;
p = make_pair(start_time,end_time);
times.push_back(p);
}
int answer = 0;
//새로운 처리가 생기기 이전 1초
for(int i = 0; i < times.size();i++){
int startNum = times[i].first - 999;
int element = 0;
for(int j = 0 ; j < times.size();j++){
// 구간 내에 존재하면(시작시간이 구간 끝나기 전, 끝나는 시간이 구간 시작한 후)
if(times[j].second >= startNum && times[j].first <= startNum + 999){
element++;
}
}
if(element > answer){answer = element;}
}
return answer;
}
4.
진짜 아이디어는 개빨리 짰는데 진짜 한 30분? 만에 짰는데
during_time 구하는데 += 라고 쓸거를 +라고만 써서 두시간동안 삽질한거 실화냐ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ아니 에러라도 나던가 에러도 안나고 걍 굴러가서,, 아니 프린트문 한번 찍어보면 될텐데 프로그래머스는 프린트 문도 못찍고
엉어엉엉엉엉엉엉엉
진짜 컴퓨터 부셔버릴번했다
스트레스 받아서 얼굴 벌게지고 피부 간지럽고 진짜,., ,후나히어미ㅓㅎ댜ㅓㅣㅏ엏닝러ㅑㅐㄷㄴ
알고리즘은 글을 덤벙거리면서 읽는 나랑 안맞다 진짜.. 후
수도코드 짜는건 진짜 빨리짜는데 꼭 이런 자잘한 실수를 한다
진짜 진짜 진짜
내 죄지 뭐,,, 그래도 많이 늘었다^^*
스트레스 받으면 나만 손해니깐 스트레스 안받기로 했다
내일은 더 잘풀렸으면,, ㅠㅠ
'ALGORITHM > Kakao' 카테고리의 다른 글
(Python) 2019 KAKAO BLIND RECRUITMENT오픈채팅방 (0) | 2021.03.24 |
---|---|
미완성코드/(C++)2018 KAKAO BLIND RECRUITMENT[3차] 자동완성 (0) | 2021.03.23 |
(C++) 2018 KAKAO BLIND RECRUITMENT[3차] 파일명 정렬 (0) | 2021.03.20 |
(C++) 2018 KAKAO BLIND RECRUITMENT - 방금 그곡 (0) | 2021.03.17 |
(C++) 2018 KAKAO BLIND RECRUITMENT[3차] n진수 게임 (0) | 2021.03.16 |