쿠릉쿠릉 쾅쾅
쿠릉쿠릉 쾅쾅
쿠릉쿠릉 쾅쾅
250x250
전체 방문자
오늘
어제
  • 분류 전체보기
    • HTML CSS
    • 잡담
    • 프로그래밍 꿀팁 사이트
    • 코딩 도서
    • [자바]
      • 디자인 패턴
      • 자바의 정석 - 3판
      • 자바
      • 자바 문법
    • git
    • [TDD]
    • 개발 서적 독후감
      • 클린 코더
      • 토비 스프링3
      • 객체지향의 사실과 오해
      • 모던 자바 인 액션
      • 엘레강트 오브젝트
    • CS
      • 운영체제
      • HTTP
    • [SQL]
      • SQL 기초
      • 혼자공부하는SQL
    • [ Spring ]
      • REST API
      • Spring Toy
      • Spring 에러
      • Spring
      • Spring 입문
      • Spring 핵심 원리
      • SpringMVC 1편
      • SpringMVC 2편
      • Spring Boot를 이용한 RESTful We..
      • Batch
    • [JPA]
      • JPA
      • JPA 에러
      • JPA 프로그래밍 - 기본편
      • 스프링 부트와 JPA 활용 1 - 웹 애플리케이..
      • 실전! 스프링 부트와 JPA 활용2 - API 개..
      • 실전! 스프링 데이터 JPA
      • 실전! Querydsl
    • 인텔리제이
    • [DB]
      • DB
      • H2
    • Gradle
    • 면접
    • [알고리즘]
      • 알고리즘
      • 자료구조
      • 자바 알고리즘 공부
    • [프로젝트]
    • 쿠릉식 객체지향 사고
    • 리눅스

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • GitHub
  • 재귀
  • JPA
  • Git
  • 함수형인터페이스
  • querydsl
  • 자료구조
  • MVC
  • Spring
  • http
  • 깃허브
  • 백준
  • 자바
  • springboot
  • REST API
  • SQL
  • 스프링부트
  • 스프링
  • java
  • 알고리즘

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
쿠릉쿠릉 쾅쾅

쿠릉쿠릉 쾅쾅

[알고리즘] 백준 2002번 : 추월 (실버1)
[알고리즘]/알고리즘

[알고리즘] 백준 2002번 : 추월 (실버1)

2022. 4. 23. 21:05
728x90

 

 

문제

https://www.acmicpc.net/problem/2002

 

✔ 풀이 설명

터널 전 랭킹인 기준 배열과 터널 후 랭킹 배열을 만든다.

기준 차량을 먼저 정한다. 기준 차량은 기준 배열에서 0이 아닌 값 중에서 가장 작은 값을 의미한다.
현재 기준 차량은 1등이다. 기준 차량이 터널 후 랭킹에서 몇 번째로 달리고 있는지 터널 후 랭킹 배열에서 찾는다.
기준 차량이 터널 후 랭킹에서 3번째로 달리고 있다. 즉, 기준 차량 앞에 있는 모든 차량은 다 추월 차량이다.

기준 차량 앞에 있는 모든 차량은 추월 차량이므로 체크 표시를 넣었다.

기준 차량 앞에 있는 5등 차량과 2등 차량은 추월 차량이므로 기준 배열에서 값을 0으로 초기화 했다.

또 새로운 기준 차량을 기준 배열에서 찾는다. 원래는 2등이어야 하지만 2등은 추월 차량이므로 기준 배열에서 탈락했다. 그러므로 나머지 등수 중에서 가장 작은 수인 3등이 기준 차량이다.
기준 차량인 3등이 터널 후 랭킹에서 마지막 번째로 달리고 있다.

기존의 기준 차량인 1등과 새로운 기준 차량인 3등 사이에서 달리는 차량은 모두 추월 차량들이다.
4등 차량이 추월 차량이므로 체크 표시를 넣어줬다.

기준 배열 값들이 모두 0으로 됐고 모든 차량 조사가 끝났다. 압정 표시가 있는 차량들이 추월 차량들이다.
총 3대가 추월했다.

 

📌 풀이

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;

class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int N = Integer.parseInt(st.nextToken());

		Map<String, Integer> map = new HashMap<>();
		
		// 터널 전 랭킹
		for(int i=0; i<N; i++) {
			map.put(br.readLine(), i+1);
		}
		
		// 기준점 배열
		int[] criterionArr = new int[N];
		
		for(int i=0; i<N; i++) {
			criterionArr[i] = i+1;
		}

		// 터널 후 랭킹
		int[] afterRanking = new int[N];
		
		for(int i=0; i<N; i++) {
			afterRanking[i] = map.get(br.readLine());
		}
		
		int criterion = 0; // 기준 차량
		
		boolean check = true;  // 기준 차량 찾기 유무
		
		int count = 0; // 추월 차량 수
		
		for(int i=0; i<N; i++) {
			
			// 기준 점 찾기
			if(check) {
				for(int k=0; k<criterionArr.length; k++) {
					criterion= criterionArr[k];
					if(criterion!=0) break;  // 기준 배열에서 가장 작은 수 찾기
				}
			}
			
			check = false;  // 기준 차량 찾기 off

			int idx = afterRanking[i]-1;
			criterionArr[idx] = 0;
			
			if(afterRanking[i]!=criterion) { 
				count++;
				continue;
			}		

			check = true; // 기준 차량 찾기 on
		}
		
		bw.write(String.valueOf(count));
		bw.close();
		
	}
}

 

 

 

 

728x90

'[알고리즘] > 알고리즘' 카테고리의 다른 글

[알고리즘] 백준 1966번 : 프린터 큐 (실버3)  (0) 2022.04.29
[알고리즘] 백준 1158번 : 요세푸스 문제 (실버4)  (0) 2022.04.28
[알고리즘] 백준 6996번 : 애너그램 (브론즈1)  (0) 2022.04.23
[알고리즘] 베스트앨범 (프로그래머스 3레벨)  (0) 2022.04.23
[알고리즘] 백준 22862번 : 가장 긴 짝수 연속한 부분 수열 (large) (실버1)  (0) 2022.04.23
    '[알고리즘]/알고리즘' 카테고리의 다른 글
    • [알고리즘] 백준 1966번 : 프린터 큐 (실버3)
    • [알고리즘] 백준 1158번 : 요세푸스 문제 (실버4)
    • [알고리즘] 백준 6996번 : 애너그램 (브론즈1)
    • [알고리즘] 베스트앨범 (프로그래머스 3레벨)
    쿠릉쿠릉 쾅쾅
    쿠릉쿠릉 쾅쾅
    깃허브 주소 : https://github.com/kureung

    티스토리툴바