-
[코딩테스트] 프로그래머스 - 야간 전술보행(Java, Level2)코딩테스트/프로그래머스 2022. 11. 11. 00:18728x90
안녕하세요.
오늘의 코딩테스트 문제는 야간 전술보행입니다.
생각보다는 간단했습니다.
다행이네요. 제가 풀 수 있는문제가 있다는것에 감사합니다 ㅠㅠ
먼저 문제 링크 남겨드립니다.
https://school.programmers.co.kr/learn/courses/30/lessons/133501
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
다음은 코드 만나보시죠
import java.util.*; class Solution { public int solution(int distance, int[][] scope, int[][] times) { int answer = 0; for(answer=1;answer<=distance;answer++) { for(int i=0;i<scope.length;i++) { int time=times[i][0]+times[i][1]; Arrays.sort(scope[i]); if(((answer-1)%time<times[i][0])&&answer>=scope[i][0]&&answer<=scope[i][1]) return answer; } } return distance; } }
1) 화랑이의 한 걸음을 표현하기위해 반복문을 통해 돌리겠습니다. 저는 한 걸음마다 감시조건에 걸리는지 확인할 예정입니다. 시작은 예시에서와 같이 1부터 시작하겠습니다.
2) 다음에는 경비병들에게 화랑이가 해당되는지 확인하는 로직을 넣었습니다.
3) 문제에 scope는 순서대로 주지 않는다기에 Arrays.sort를 통해 정렬했습니다.
4) 다음은 if조건문 입니다.
① 조건 : 근무시간인지 체크하는 조건입니다. [근무시간, 휴식시간]=> 시간의 루틴을 만들어 나머지를 통해 근무시간인지 아닌지 판단했습니다.
② 다음 조건은 해당 distance가 경비병의 scope안에 있는지 확인하는 로직입니다.
5) 만약 경비병의 scope안에있고 경비병은 근무시간이라면 해당 거리를 return해줍니다.
6) 그렇지않다면 적진에 도달했으니 distance를 리턴해주겠습니다.
이상입니다.
추운날씨 감기조심하시기 바랍니다. :D
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[코딩테스트] 프로그래머스 - 진료과별 총 예약 횟수 출력하기(MySQL, Level2) (0) 2022.11.14 [코딩테스트] 프로그래머스 - 3월에 태어난 여성 회원 목록 출력하기(MySQL, Level2) (0) 2022.11.13 [코딩테스트] 프로그래머스 - 우박수열 정적분(Java, Level2) (1) 2022.11.10 [코딩테스트] 프로그래머스 - 게임 맵 최단거리(Java, Level2) (dfs, 실패) (0) 2022.10.24 [코딩테스트] 프로그래머스 - 연속 부분 수열 합의 개수(Java, Level2) (0) 2022.10.21