Super Kawaii Cute Cat Kaoani
본문 바로가기
✍️ Algortihm/Java

[백준] 1940번: 주몽의 명령 - JAVA

by wonee1 2024. 11. 13.
728x90

 

 

 

백준에 신기한 문제가 많다는 건 알고 있었는데 냅다 이름이 주몽으로 되어있어서 좀 웃겼던 문제

주몽님 보고계신가요 21세기엔 철기군을 양성하기 위해서 코딩을 합니다 

 

 

✍️풀이방식

 

1. 재료의 개수 , 갑옷만드는 데 필요한 수 정의 후 입력받기

2. N개의 재료들이 가진 고유한 번호들이 공백을 사이에 두고 주어짐 

3. 받은 재료를 정렬해서 풀기 (후에 투 포인터 사용) 

 

 

투 포인터 이동 원칙 

A[i] + A[j] > M; j--; // 번호의 합이 M보다 크기 때문에 큰 번호 index 감소 
A[i] + A[j] > M; j--; // 번호의 합이 M보다 작으므로 작은 번호 index 증가 
A[i] + A[j] > M; j--; // 양쪽 포인터를 모두 이동시키면 count 증가 

 

 


 

🖥️문제풀이

 

 

import java.util.*;
import java.io.*;

public class Main
{
	public static void main(String[] args)throws IOException {
		BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
		int N= Integer.parseInt(br.readLine());
		int M= Integer.parseInt(br.readLine());
		int[] S =new int[N];
		
		StringTokenizer st =new StringTokenizer(br.readLine());
		for(int i=0; i<N; i++){
		    S[i] = Integer.parseInt(st.nextToken());
		}
  
		Arrays.sort(S); // 정렬 알고리즘 사용 
		int count =0;
		int i=0; //A[0] 
		int j=N-1; //A[N-1] 
		
		while(i<j){
		    if(S[i]+S[j]<M)i++;
		    else if(S[i]+S[j]>M)j--;
		    else{
		    i++;
		    j--;
		    count++;
		    }
		}
		
		System.out.println(count);
		
	}
}

 

 

 

 

 

 

☑️실행결과

 

728x90