첫 시도:
도무지 감이 안잡혀서 먼저 1월 달력만 해당하게 프로그램을 만들어 보기로 함
문제점:
나머지가 요일별로 다르다는 건 바로 알게됨 (그나마 다행;)
다른 월도 해당하게 코딩해보기로 함
요일은 바뀌는 거니까 요일을 조건으로 잡아야 하나 생각됨.
package till;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int x=scan.nextInt();
int y=scan.nextInt();
//1월만
if(y%7==1){
System.out.print("MON");
}
if(y%7==2){
System.out.print("TUE");
}
if(y%7==3){
System.out.print("WED");
}
if(y%7==4){
System.out.print("THU");
}
if(y%7==5){
System.out.print("FRI");
}
if(y%7==6){
System.out.print("SAT");
}
if(y%7==0){
System.out.print("SUN");
}
}
}
두 번째 시도:
package till;
import java.util.*;
public class Main {
public static void main(String[] args) {
/*
* 월마다 다른 일자수는 어떻게 처리?
*
*/
Scanner scan=new Scanner(System.in);
int x=scan.nextInt();//월 input
int y=scan.nextInt();//일 input
month(x);
}
public static int lastday(int x) {
int temp=0;
if(x==1){
temp=32;
}
return 1;
}
public static void month(int x) {
if(x==1||x==3||x==5||x==7||x==8||x==10||x==12){
for(int j=1;j<=31;j++){
System.out.print("a");
if(j%7==0){
System.out.println(" ");
}
}
}
else if(x==4||x==6||x==9||x==11){
for(int j=1;j<=30;j++){
System.out.print("a");
if(j%7==0){
System.out.println(" ");
}
}
}
else{
for(int j=1;j<=29;j++){
System.out.print("a");
if(j%7==0){
System.out.println(" ");
}
}
}
}
}
세 번째 시도:(해답 봄) 해답
배열에 저장해둬야 하는 걸 알게됨
월마다 다른 일수를 어떻게 처리? -> 일수를 다 더하고 그냥 그 total에서 나머지 연산으로 날짜 출력하면 되는 거였음.
문제점:
해답 대충 봄.
input값은 어디로?
일수 다 더하는 total이 있어야겠다는 생각은 했는데 그걸 너무 어렵게 생각한듯
-첫시도에서 만든 긴 if문을
String[] days={"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
int[] monthNum={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
System.out.println(days[total%7]);이렇게 생각하면 됐었던 거지
package till;
import java.util.*;
public class Main {
public static void main(String[] args) {
String[] days={"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
int[] monthNum={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
Scanner scan=new Scanner(System.in);
int x=scan.nextInt();//월 input
int y=scan.nextInt();//일 input
int total=0;//일수 구하기 위한
for(int i=0;i<monthNum.length;i++) {
total+=monthNum[i];
}
System.out.println(days[total%7]);
}
}
네 번째 시도:
1월의 일수와 2월의 일수를 더하고 12를 더한 총 일수에서 %7을 해주어 요일을 알면 됨
그래서 for문을 x-1동안 돌고, total을 y값으로 디폴트 주도록 변경.
package till;
import java.util.*;
public class Main {
public static void main(String[] args) {
String[] days={"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
int[] monthNum={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
Scanner scan=new Scanner(System.in);
int x=scan.nextInt();//월 input
int y=scan.nextInt();//일 input
int total=y;//일수 구하기 위한
for(int i=0;i<x-1;i++) {
total+=monthNum[i];
}
System.out.println(days[total%7]);
}
}
'ALGORITHM > 푼 문제들&과정' 카테고리의 다른 글
[JAVA] 백준 1065번 (0) | 2019.03.03 |
---|---|
[JAVA] 백준 4344번 (0) | 2019.02.27 |
[JAVA] 백준 4673번 (0) | 2019.02.26 |
[JAVA] 백준 10817번 (0) | 2019.02.01 |
[JAVA] 백준 11720번 (0) | 2019.01.30 |
Comments