컴공댕이 공부일지
[java] 백준 ( 10818 최소, 최대 / 1924 2007년) 본문
스트릭 잇기할 겸 가볍게 브론즈 문제들 풀어보았다.
마감 알바때문에 너무 힘들어서 브론즈 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");
}
}
}
'문제 풀이 > 코딩 문제 풀이 모음' 카테고리의 다른 글
[java] 백준 ( 13458 시험 감독 ) (0) | 2023.03.30 |
---|---|
[java] 백준 ( 13015 별 찍기-23 ) (0) | 2023.03.24 |
[c언어, java] 백준 (2675 문자열 반복 / 1002 터렛) (0) | 2023.03.21 |
[c언어] 백준 (1193 분수찾기) (0) | 2023.03.20 |
[c언어] 백준 (2577 숫자의 개수 / 13909 창문 닫기 ) (0) | 2023.03.17 |