[프로그래머스 C++] 동영상 재생기CSE/코딩 문제풀이2024. 9. 29. 20:19
Table of Contents
https://school.programmers.co.kr/learn/courses/30/lessons/340213
간단한 문제같지만, 신경써야 할 조건이 좀 있다. (ex. 건너뛰기 시 현재 재생 위치를 확인)
내용을 잘 읽어보고 그에 맞는 조건을 적어야 바로 넘어갈 수 있다.
#include <string>
#include <vector>
using namespace std;
string solution(string video_len, string pos, string op_start, string op_end, vector<string> commands) {
string answer = "";
int temp = stoi(pos.substr(0, 2)) * 60 + stoi(pos.substr(3, 2));
int totalLen = stoi(video_len.substr(0, 2)) * 60 + stoi(video_len.substr(3, 2));
int opStart = stoi(op_start.substr(0, 2)) * 60 + stoi(op_start.substr(3, 2));
int opEnd = stoi(op_end.substr(0, 2)) * 60 + stoi(op_end.substr(3, 2));
if (opStart <= temp && opEnd >= temp)
{
temp = opEnd;
}
for (string com : commands)
{
if (com.compare("prev") == 0)
{
if (temp - 10 > 0)
temp -= 10;
else
temp = 0;
}
else if (com.compare("next") == 0)
{
if (temp + 10 < totalLen)
temp += 10;
else
temp = totalLen;
}
if (opStart <= temp && opEnd >= temp)
{
temp = opEnd;
}
}
answer = (temp / 60 < 10 ? "0" + to_string(temp / 60) : to_string(temp / 60)) + ":" + (temp % 60 < 10 ? "0" + to_string(temp % 60) : to_string(temp % 60));
return answer;
}
오프닝 지점인지 시작 전에 먼저 확인하고, 이 후 commands를 돌면서 그때그때마다 확인하였다.
'CSE > 코딩 문제풀이' 카테고리의 다른 글
[백준 C++] 14888 : 연산자 끼워넣기 (0) | 2024.11.08 |
---|---|
[백준 C++] 1260 : DFS와 BFS (0) | 2024.11.08 |
[프로그래머스 C++] 숫자 짝꿍 (0) | 2024.06.10 |
[프로그래머스 C++] 혼자 놀기의 달인 (0) | 2024.06.10 |
[프로그래머스 C++] 가장 큰 수 (0) | 2024.05.29 |
@NiffJB :: 개발하는 니프
CSE & GAME 개발 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 부탁드립니다!