[알고리즘 / JS] 자동차 10부제
1. 문제
자동차 10부제는 자동차 번호 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 제도다.
예를 들어, 자동차 번호가 [1234] 일 때, 일의 자리 숫자가 4이므로, 4일, 14일, 24일에 운행을 하지 못한다.
다음 총 10대의 자동차 번호와 날짜가 주어질 때, 이 자동차 10부제를 위반하는 자동차의 대수를 출력하는 프로그램을 작성하라.
2. 입/출력
입력예제:
[1234, 5678, 1342, 5523, 7829, 1010, 5206, 1413, 7627, 5234], 3
출력예제:
2
3. 알고리즘 풀이
- 입력받은 자동차 번호 배열을 순회합니다.
- 자동차 번호의 마지막 번호와 입력받은 날짜가 같을 때,
- 자동차 댓수로 반환할 변수를 +1 해줍니다.
// arr: 자동차 번호판 배열
// day: 날짜
function solution(arr, day) {
let answer = 0; // 자동차 댓수로 반환할 값
// 1. 자동차 번호 배열 순회
for (let x of arr) {
// 2. 자동차 번호 == 날짜 같을 때,
if (x % 10 == day) {
// 3. 자동차 댓수로 반환할 변수에 +1;
answer++;
}
}
return answer;
};
solution([1234, 5678, 1342, 5523, 7829, 1010, 5206, 1413, 7627, 5234], 3)
4. 알고리즘 원리
간단하게 주어진 배열을 순회해서, 주어진 값의 1의 자릿수를 찾을 수 있는지가 관건입니다.
이 1의 자릿수가 입력받은 날짜와 같을 때, 최종으로 출력할 값을 증가시켜줍니다.
'Algorithm > 알고리즘' 카테고리의 다른 글
[알고리즘 / JS] 중복된 문자 제거 (0) | 2023.07.13 |
---|---|
[알고리즘 / JS] 가운데 문자 출력 (0) | 2023.07.13 |