컴공댕이 공부일지

[java] 백준 ( 10818 최소, 최대 / 1924 2007년) 본문

문제 풀이/코딩 문제 풀이 모음

[java] 백준 ( 10818 최소, 최대 / 1924 2007년)

은솜솜솜 2023. 3. 23. 03:31
728x90

스트릭 잇기할 겸 가볍게 브론즈 문제들 풀어보았다.

마감 알바때문에 너무 힘들어서 브론즈 2개만........ㅠ

 

1. 10818 최소, 최대

브론즈 3

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

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

 

for 반복문으로 입력받는 수를 배열에 저장하고, 또 for 반복문으로 쭉 훑으면서 min, max를 찾았다.

 

정답 코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		
		int n = s.nextInt();
		
		int [] num = new int[n];
		
		for(int i=0;  i<n; i++) {
			num[i] = s.nextInt();
 		}
		
		int min=num[0];
		int max=num[0];
		
		for(int i=0;  i<n; i++) {
			if(min>num[i]) {
				min=num[i];
			}
			if(max<num[i]) {
				max=num[i];
			}
 		}
		
		System.out.printf("%d %d", min, max);
	}
}

 

 

 

 

 

 

 

 

2. 1924 2007년 

 

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

 

1924번: 2007년

첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.

www.acmicpc.net

 

날짜 주어지면 요일 구하는 문제! 

 

7일, 14일, 21일 / 1일, 8일, 15일 등, 일자를 7로 나누어서 나온 나머지가 같으면, 요일도 같음을 이용했다.

switch문을 활용해 각 월별로 나머지가 0인 날의 요일을 변수 t에 저장했다.

ex) 1월은 7일, 14일, 21일.. 등의 나머지가 0인 날이 일요일(6)

0 1 2 3 4 5 6은 각각 월 화 수 목 금 토 일을 의미한다.

 

나머지가 1이면 나머지가 0인 요일에서 한 칸 이동,

나머지가 6이면 나머지가 0인 요일에서 6칸 이동.. 이런식으로 풀었다.

 

while문을 활용해 나머지값만큼 요일을 이동하도록 했다.

if문으로 이동 하다가 t=6이 되면, 즉, 일요일이 되면 다시 t=0으로 바꿔서 월요일부터~

 

 

정답코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		
		int x = s.nextInt();
		int y = s.nextInt();
		
		int t=0; //요일 저장 0=월, 1=화 ~~
		int l=y%7; //7로 나눈 나머지가 같으면 요일이 같음을 활용하기 위한 나머지 저장 변수
		
		
		switch(x) { //각 월별로 (일자%7==0)인 요일을 t에 저장
		case 1 :
			t=6;
			break;
		case 2 :
			t=2;
			break;
		case 3 :
			t=2;
			break;
		case 4 :
			t=5;
			break;
		case 5 :
			t=0;
			break;
		case 6 :
			t=3;
			break;
		case 7 :
			t=5;
			break;
		case 8 :
			t=1;
			break;
		case 9 :
			t=4;
			break;
		case 10 :
			t=6;
			break;
		case 11 :
			t=2;
			break;
		case 12 :
			t=4;
			break;
		}
		
		int i=l;
		
		while(i>0) { //나머지값만큼 요일 이동!
        
			if(t==6) { //일요일(=6)이면 다시 월요일(=0)부터~
				i--;
				t=0;
			} else {
				t++;
				i--;
			}
            
		}
		
		if(t==0) { //최종 출력
			System.out.println("MON");
		} else if(t==1) {
			System.out.println("TUE");
		} else if(t==2) {
			System.out.println("WED");
		} else if(t==3) {
			System.out.println("THU");
		} else if(t==4) {
			System.out.println("FRI");
		} else if(t==5) {
			System.out.println("SAT");
		} else {
			System.out.println("SUN");
		} 		
	}
}

 

728x90
Comments