인생은 고통의 연속

3일차 리뷰 본문

프로그래밍/알고리즘

3일차 리뷰

gnidoc 2019. 1. 9. 22:05
    반응형

    2019/01/08 - [프로그래밍/알고리즘] - 1, 2일차 리뷰


    이어서 3일차


    벌써부터 java에서 for문 쓰기가 귀찮아진다.

    java에선 for문을 이렇게 쓰는데

    1
    for (int i=0;i<10;i++) {}
    cs


    내가 = ; < 같은 특수문자를 빠르게 치는법을 모르는건지

    for문 치는게 너무 귀찮다


    python에서는 

    1
    for i in range(010)
    cs


    Node.js에서는 라이브러리(underscore) 힘을 빌려서

    1
    _.each(_.range, function() {})
    cs


    요렇게 쓰는데 뭔가 더 길어지긴했으나 특수문자가 별로 없어서 좋다

    암튼 서론은 여기까지


    step 3은 for문


    별찍기 문제들이라서 좀 의미있던 문제만 리뷰!




    1924번

    오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.

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


    난 생각없이 java의 calendar class을 사용해서 풀었다.

    내 풀이 : https://github.com/gnidoc327/one-day-one-problem/blob/master/src/step_by_step/step3/Problem1924/Main.java


    풀고 나서 생각해보니 for문 단계인데 왜 calendar을 썼을까라는 생각이 들긴했다.

    아래처럼 for문으로 간단하게 풀수있는 것을...

    (맘에 드는 코드는 아니지만 공개된 정답 코드 중 다른 분이 푼걸 일부 복붙해왔다)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    int m = sc.nextInt();
    int d = sc.nextInt();
     
    int[] mdays = new int[13];
    mdays[1= mdays[3= mdays[5= mdays[7= mdays[8= mdays[10= mdays[12= 31;
    mdays[4= mdays[6= mdays[9= mdays[11= 30;
    mdays[2= 28;
     
    int sum = 0;
     
    for(int i = 1; i <= 12; i++) {
        if(i == m)  {
            break;
        }
     
        sum = sum + mdays[i];
    }
     
    sum = sum + d;
     
    switch(sum % 7) {
    ...
    cs


    간단하게 풀수있는걸 너무 멀리 와버린 느낌적인 느낌이랄까

    라이브러리 쓰는거에 너무 익숙해진 탓인가;;

    알고리즘 푸는거 열심히 해야겠다;;

    반응형

    '프로그래밍 > 알고리즘' 카테고리의 다른 글

    6일차 리뷰  (0) 2019.01.12
    5일차 리뷰  (0) 2019.01.12
    4일차 리뷰  (0) 2019.01.10
    1, 2일차 리뷰  (0) 2019.01.08
    백준 알고리즘  (0) 2019.01.07
    Comments