[백준] 10부제

🐨 문제 설명

자동차 10부제를 시행하는데 자동차 번호의 일의 자리 숫자와 날짜의 일의자리 숫자가 일치하면 해당 자동차의 운행을 금지한다.
날짜의 일의 자리 숫자가 주어졌을 때 5대의 자동차 중 10부제를 위반한 자동차의 대수를 출력하는 문제이다.
>>> 10부제 문제 보러가기

🐶 Java 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public void solution() throws IOException {
    	//1. 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //2. 
        int day = Integer.parseInt(br.readLine());
        //3. 
        StringTokenizer st = new StringTokenizer(br.readLine());
		
        int cnt = 0;
        //4.
        while(st.hasMoreTokens()){
           //5.
            if(day == Integer.parseInt(st.nextToken())){
                cnt ++;
            }
        }
    }
    public static void main(String[] args) {
        Main m = new Main();
        try {
            m.solution();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

-->깃허브로 풀이 보러가기

문제 설명

  1. 백준은 프로그래머스와 다르게 입력값을 받아서 해결해야 하는 문제들이 다수 존재한다. 그래서 콘솔에서 입력값을 받아주기 위해서 BufferedReader 인 br을 생성해주었다.
  2. 10부제의 특정 요일을 받을 int 형의 day 변수에 br.readLine()을 사용하여 입력값을 받아 Integer.parseInt()로 정수형 번환을 해주었다.
  3. StringTokenizer를 사용하여 br.readLine()을 통해 입력 받은 것들을 띄어쓰기를 기준으로 문자열을 쪼개주었다.
  4. while 문에서 StringTokenizer의 메서드인 hasMoreTokens()을 이용해 st에 토큰이 존재할 때까지 nextToken()을 사용해 토큰을 하나씩 꺼내온다.
  5. 10부제의 특정한 요일이 담겨있는 day 변수와 토큰의 값이 일치하면 위반한 자동차의 개수를 담아줄 cnt 값을 1 증가시킨다.

🐰 Python 풀이

day = int(input())
arr = list(map(int, input().split()))

print(arr.count(car))

--> 깃허브로 풀이 보러가기
역시 알고리즘은 파이썬이다..
10부제의 특정요일인 day 자동차 5대가 담길 arr 리스트이다.
그리고 출력할때에는 arr.count(day)를 이용해 arr 리스트 내에서 day의 값과 일치하는 요소의 개수를 반환하였다.

성능

좋은 웹페이지 즐겨찾기