ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2020 모각코] 2회차 2020.07.02
    카테고리 없음 2020. 7. 2. 18:04

    2주차 목표 : 백준 브4 15문제 + a 풀기

    ====================================================================

    원래 목표는 15문제에 더 풀 계획이였는데 딱 15문제를 풀었다. 확실히 브론즈 5 문제보다 계산문제가 많아지면서 코드 자체는 그렇게 어렵다고 느끼진 못했지만 시간이 더 오래걸렸다. 우선 아래는 계산을 하면서 까다롭다고 느꼈던 문제들의 코드이다. 같이 살펴보도록 하자.

     

     

    import java.util.Scanner;

    public class Main {

       public static void main(String[] args) {
          Scanner a = new Scanner(System.in);

          int tv = a.nextInt();

          int h = a.nextInt();

          int w = a.nextInt();

     

          long tv1 = tv*tv;

          long h1 = h*h;

          long w1 = w*w;

     

     

          double x = (double)tv1/(double)(h1+w1);

          System.out.println((int)Math.sqrt(x*h1) + " " + (int)Math.sqrt(x*w1));

     

    }

    }

     

     

     

    우선 간단히 말하면 대각선의 길이와 가로 세로 비율을 통해 실제 높이와 너비를 알아내는 문제이다. 비율을 알아내어 이제 루트만 씌우면 되는데 루트를 씌우는 법을 몰라서 헤매다가 Math.sqrt라는 것을 알아내었다. 

     

     

    String[] arr = a.next().split(",");

    다음은 split입니다. 문제는 ,로 나누어진 숫자들을 더하는 것이였는데 예를 들어

    1,1

    2,3

    3,6

    을 입력하고 각 연산의 답인 각각 2,5,9를 출력하는 것이었다. 그 중 ","로 나누어 숫자를 입력하는 것을 처음에는 String으로 ","를 해결하려 했지만 컴파일 에러가 떠서 고민하다 웹서핑을 통해 split을 쓰면 ","를 기준으로 나뉘는 것을 알게 되었다.

     

    hasNextInt()

    마지막으로는 hasNextInt()이다. 사실 hasNextInt()는 nextInt()를 잘못 쳤을때 자주 나오곤 했는데 그 쓰임을 몰랐다. 그런데 코딩 활동을 하면서 hasNextInt()의 쓰임을 알게 되었다. 예를 들어 hasNextInt()=True라고 가정하고 숫자가 나오다가 문자가 나온다면 hasNextInt()는 False로 바뀌는 것을 알게 되었다. 그리고 이 조건을 while에 쓰면 편리하다는 것을 알게 되었다.

     

    2주차 회고록

    사실 위의 개념들을 제외하고는 거의 수를 계산하는 문제여서 생각보다 문제를 푸는 시간이 오래 걸렸다. 어떤 문제는 40분을 걸린 적도 있고 30분 걸린 문제도 있고 그랬는데 그래도 저번 시간에는 기본 다지기를 했다면 이번 시간에는 약점을 알고 모르는 개념도 알게된 시간이여서 알찼다고 생각한다. 또한 정말 모르는 코드가 있을때는 다른 사람들의 코드도 보았는데 나의 코드와 많이 달라 더 유심하게 보게되었다. 어떤 사람은 정말 간단하게 푼 사람도 있었고 전혀 생각지도 못한 방향으로 푼 사람도 있어서 나의 답이 맞다고 해도 다른 사람의 코드를 보며 해석하고 이해하느라 시간이 더 오래 걸렸다. 코딩을 하면 할수록 새로운 것들을 많이 배워 앞으로 코딩을 배울 나날들이 기대된다.

Designed by Tistory.