본문 바로가기

카테고리 없음

항해 99 2주차 - 1일..?

  오늘은 아무튼 1일이다. 월요일이기도 하고 일요일에 주차별 마무리를 하였기 때문에 1일이라고 생각한다. 

 하지만 하는 것은 변함없는 알고리즘이다. 이번에도 알고리즘을 풀며 느낀것은 메소드를 모르면 그냥 조금 더 많이 치면 기능은 한다는 것이다. 예를 들어 수의 자릿수를 알아내는 메소드인 (int)(Math.log10(n) + 1) 이 문장을 몰라서 

int size = 0; | long a = n; |  while (true) { if (a < 10) {size++; | break;} | a = a/10; | size++; } 이라고 풀어서 사용한 기억이 있다. 뭐 되니까 좋은거지 하는 마음은 있었지만, 뭔가 서러웠다. 

 때문에 지금 기회를 여러가지 형식을  알아보는 기회로 이용하고 있다. 

예를 들어 행렬의 합은 방법을 모르니 생각조차 하지 못했다가 보니 이해가 된 경우이다. 

for (int i = 0 ; i < arr1.length ; i++) {
    for (int j = 0 ; j < arr1[i].length ; j++){
        answer[i][j] = arr1[i][j] + arr2[i][j];
    }
}

다음 예로는 삼항연산자이다.

answer = answer.length > 0 ? answer : new int[] {-1};

이 경우 if 문을 활용하여 여러 문장을 사용하여야 하지만, 간단하게 작성된 예이다.