2014년 10월 15일 수요일

[AlgoSpot] WEEKLYCALENDAR

  • 주일달력 만들기 입니다.
  • 요일을 인식하여 인덱스로 반환하는 부분을 if문이나 삼항연산사로 실험해보았으나 해쉬맵을 이용하는 방법이 조금이나마 빨랐습니다.
  • 요일을 입력받아 요일에 해당하는 위치를 인덱스로 반환하여 for문으로 출력할때에 정확한 위치에 나오도록 하였습니다.




 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.HashMap;
import java.util.Scanner;

public class WEEKLYCALENDAR {

    public static void main(String[] args) {
     int end_day[] = {31,28,31,30,31,30,31,31,30,31,30,31};
     HashMap<string integer=""> days= new HashMap<string integer="">();
     days.put("Sunday", 1);
     days.put("Monday", 2);
     days.put("Tuesday", 3);
     days.put("Wednesday", 4);
     days.put("Thursday", 5);
     days.put("Friday", 6);
     days.put("Saturday", 7);
     Scanner sc = new Scanner(System.in);
  int cases = sc.nextInt();
  while (cases-- &gt; 0) {
   int month = sc.nextInt();
   int last_month = month==1?11:month-2;
   int day = sc.nextInt();
   String week = sc.next();
   int index = days.get(week);
   int weeks[] = new int[7];
            for(int i=1;7&gt;=i;i++){
                int print = day-index+i&lt;1 data-blogger-escaped-day-index="" data-blogger-escaped-end_day="" data-blogger-escaped-i="" data-blogger-escaped-last_month=""&gt;end_day[month-1]?day-index+i-end_day[month-1]:day-index+i);
                weeks[i-1]=print;
            }
   System.out.println(weeks[0]+" "+weeks[1]+" "+weeks[2]+" "+weeks[3]+" "+weeks[4]+" "+weeks[5]+" "+weeks[6]);
  }
    }
}

  • 취준생의 공부 정리 방입니다. algospot 게시물에서 문제 풀이에 대한 포스팅은 언제나 환영이라는 글을 보았기에 정리겸, 공부겸 겸사겸사 문제풀이를 올립니다. 저작권에 문제 있을시 자삭하겠습니다.
  • 엉터리일수도(아마도 대부분) 느리기도 하지만 풀었다는 것에 의의를 두고 있습니다.
  • 댓글 없음:

    댓글 쓰기