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 | 31 |
Tags
- 백준 2870번
- 백준 17070번 c++
- 유니티
- 2870번 c++
- 백준 c++ 2870번
- 오브젝트 풀링
- 2870번 수학숙제
- 코딩테스트
- 2468 c++
- Beakjoon
- Lv.3
- 코테
- dfs
- 17070번
- Unity
- 프로그래머스
- 백준 1103번 c++
- 수학숙제
- 백준
- Lv2
- 백준 c++ 2468번
- c++
- 백준 17070번
- 2870번 수학숙제 c++
- 백준 1103번
- C#
- 2870번
- 백준 1103번 게임
- Algorithm
- 플레이어 이동
Archives
- Today
- Total
주녘공부일지
[프로그래머스 C#] Lv.1 동영상 재생기 (PCCP 기출문제 1번) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/340213?language=csharp
1. 정답코드 및 핵심 아이디어, 유의사항
동영상 재생기 문제
- 현재 재생 중인 시간에서 10초 후, 10초 전 으로 넘어가는 명령어를 받음
- 현재 재생 위치가 오프닝 구간인 경우 자동으로 오프닝이 끝나는 위치로 이동
코드 참조
using System;
public class Solution
{
public int GetTime(string str)
{
string[] strs = str.Split(':');
int minute = int.Parse(strs[1]);
minute += int.Parse(strs[0]) * 60;
return minute;
}
public string solution(string video_len, string pos, string op_start, string op_end, string[] commands)
{
int maxTime = GetTime(video_len);
int opStartTime = GetTime(op_start);
int opEndTime = GetTime(op_end);
int currTime = GetTime(pos);
if(opStartTime <= currTime && currTime <= opEndTime)
currTime = opEndTime;
for(int i = 0; i < commands.Length; i++)
{
if(commands[i] == "next")
currTime += 10;
else // prev
currTime -= 10;
if(currTime < 0)
currTime = 0;
else if(currTime > maxTime)
currTime = maxTime;
if(opStartTime <= currTime && currTime <= opEndTime)
currTime = opEndTime;
}
return $"{(currTime / 60).ToString("D2")}:{(currTime % 60).ToString("D2")}";
}
}
'CodingTest > Programmers Lv.1' 카테고리의 다른 글
[프로그래머스 C++] Lv.1 완주하지 못한 선수 (0) | 2024.07.30 |
---|---|
[프로그래머스 C#] Lv.1 신고 결과 받기 (0) | 2024.02.14 |
[프로그래머스 C#] Lv.1 개인정보 수집 유효기간 (0) | 2024.02.13 |
[프로그래머스 C#] Lv.1 옹알이(2) (0) | 2024.01.15 |
[프로그래머스 C#] Lv.1 가장 많이 받은 선물 (0) | 2024.01.04 |