Algorithm/Problem

[Softeer] 근무 시간(Lv.1) - Day1

검은 까마귀 2024. 1. 26. 14:51

📋 개요 

첫째날의 두번째 문제는 같은 Lv.1의 문제였다.

2024.01.26 - [Algorithm/Problem] - [Softteer] A+B(Lv.1) - 1Day

 

[Softteer] A+B(Lv.1) - 1Day

📋 개요 소프티어 데브 크루가 오픈하면서 2주간 코테 챌린지를 한다고해서 하루에 2문제씩 꾸준히 풀이하고 "해당일"에 제출을 해야한다! 1일차에는 Lv.1 문제로 구성되어있었다. Lv.1 A+B 문제를

blaj2938.tistory.com

첫번째 문제는 너무 기본적인 내용이라 간을 보다가만 느낌이였다.

 

첫번째 문제은 A+B(Lv.1)에 이어 두번째 문제 근무시간(Lv.1)을 풀어보겠다!

https://softeer.ai/practice/6254

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

 

softeer.ai


🧩 문제

당신은 인사팀 직원으로, 각 직원의 근태를 확인하고자 한다.

당신의 회사는 자율출퇴근제를 실시하기 때문에 각 직원이 정확히 몇 시에 출근하는 것은 중요하지 않고, 총 근로 시간이 몇 분인지가 중요하다. 총 근로 시간이 법정근로시간을 초과하지 않아야 하면서, 회사와 직원 사이에 계약한 시간 이상이어야 하기 때문이다.

직원이 하루 동안 근무한 시간은 출근 시각과 퇴근 시각 사이의 시간으로 정의한다. 이 문제에서는 식사 시간 등 근무 외 시간을 근무 시간에서 제외하지 않음에 유의하라.

월요일부터 금요일까지 휴가를 쓰지 않은 직원이 매 요일 언제 출근하고 언제 퇴근했는지가 주어질 때, 이 직원이 5일 동안 총 몇 분을 근무했는지를 구하는 프로그램을 작성하라.

 제약조건

직원은 밤을 새서 일하지 않았다. 즉, 출근 시각과 퇴근 시각은 00:00 이후, 24:00 이전에 이루어졌다.

 

출퇴근 시각은 HH:MM과 같은 형식으로 주어진다.
HH는 00, 01, 02, .., 22, 23 중 하나이다.
MM는 00, 01, 02, .., 58, 59 중 하나이다.
직원은 매일 1분 이상은 일하였다.

📝  형식 

📥 입력 📤 출력
첫 번째 줄에는 월요일에 출근한 시각과 월요일에 퇴근한 시각이 공백 하나를 사이로 두고 주어진다.
두 번째 줄에는 화요일에 출근한 시각과 화요일에 퇴근한 시각이 공백 하나를 사이로 두고 주어진다.
세 번째 줄에는 수요일에 출근한 시각과 수요일에 퇴근한 시각이 공백 하나를 사이로 두고 주어진다.
네 번째 줄에는 목요일에 출근한 시각과 목요일에 퇴근한 시각이 공백 하나를 사이로 두고 주어진다.
다섯 번째 줄에는 금요일에 출근한 시각과 금요일에 퇴근한 시각이 공백 하나를 사이로 두고 주어진다.
첫 번째 줄에 직원의 총 근무 시간을 분 단위로 출력한다.

💡  예제

🔢 번호 📥 입력 📤 출력
1
1980
2
2785
3
2525

🖥️ 내 코드

 


📖  해설 및 느낀점

일단, string 헤더 파일을 가져와서 문자열에 관련된 함수를 사용했다.

#include <string> //string 헤더 include

//.substr(시작점, 문자열 길이)
//반환값: 내가 시작한 지점부터 길이(시작점 포함)
string MM = time.substr(3, 4);

//stoi(문자열) -> string to int의 줄임말
//반환값: 정수형
//09를 넣어도 9가 나옴
int hh = stoi(HH);

 

새롭게 알게된 문자열 문법은 저런것들이 있고 "분 단위로 출력" 이라는 공식이 있는데 시각을 분으로 환산해서 계산을 해주면 더 편하게 연산할 수있다.

 

요런 느낌으로~(24시간 표기법도 마찬가지이다.)

  1. 시각을 분으로 환산
    1. ex) 13*60 , 1* 60
  2. 남은 분과 시각을 분으로 환산한 값을 더함
    1. ex) 13:20 ➡️ 13X60 + 20 = 800
  3. 마치는 시간 - 시작 시간 = 일한 시간

이걸 다시 시분으로 나누려면 60으로 나누기 해서 나머지는 분으로 몫은 시간으로 보내면 된다.


1일차도 문제를 다 풀어냈다.

 

 

아래는 dev 크루 오픈이벤트의 자세한 설명과 내가 만든 데브 크루에 대한 설명이다.

2024.01.25 - [Life log/Development log] - [DevLog] Softeer - Dev Crew 신규 오픈!

 

[DevLog] Softeer - Dev Crew 신규 오픈!

Softeer에서 DevCrew 신규 서비스를 오픈하여 2주간 코딩챌린지를 한다고 해서 C++도 익힐 겸 코테 준비도 할겸 이 챌린지에 올라탔다. 먼저 알게된 경로는 e-mail 이였다. https://softeer.ai/connect/events/88 So

blaj2938.tistory.com

 

위에 이벤트가 열렸으니 "코드 크래프터스" 크루에 들어와서 많은 참여부탁드립니다~!!

 

반응형

'Algorithm > Problem' 카테고리의 다른 글

[Softeer] 우물 안 개구리(Lv.3) - Day3  (0) 2024.01.29
[Softeer] GBC(Lv.2) - Day3  (0) 2024.01.29
[Softeer] 회의실 예약(Lv.2) - Day2  (0) 2024.01.29
[Softeer] 금고털이(Lv.2) - Day2  (0) 2024.01.29
[Softeer] A+B(Lv.1) - Day1  (0) 2024.01.26