본문 바로가기
코딩 공부(hackerrank)

[HackerRank] 코딩 시 주의하자! (3월)

by Luna_lua 2022. 3. 22.
반응형

<22년 03월 14일>
- Integer처럼 Wrapper는 반복문에서는 잘 사용하지 않는다
-> Integer로 있기 때문에 그냥 쓰긴 했지만 자동 형변환이 되므로
    int로 사용하는 것이 좋다.

- 변수명은 integer로 하지 않는다.
->특정 기능을 하는 변수명은 사용하지 말고 뜻을 명시한 단어로
   변수명을 지정한다.

참조 : https://www.hackerrank.com/challenges/simple-array-sum/submissions/code/260335857


<22년 03월 15일>

- 들여쓰기도 잘 확인해라

-> 이는 극한의 스타일을 보는 사람들도 있지만 스타일을 고정하면 찾는 기능을 검색할때 용이하다.


<22년 03월 16일>

- 추가사항은 따로 없다

 

<22년 03월 17일>

- 추가사항은 따로 없다


<22년 03월 18일>

- arr.size()를 자주 사용한다면 변수에 담아서 한번만 사용하고 값 호출만 하는게 좋다.

- 어떠한 횟수를 카운트 할때는 int로 하고, 계산할때 형변환을 시켜주는것이 좋다.

- (알고만 있기) 리스트는 배열보다 크고 작업이 많기 때문에 간단 계산이라면 배열로 바꿔서 계산하고, return할때 다시 변경하는 사람도 있다.

참조 : https://www.hackerrank.com/challenges/plus-minus/problem


<22년 03월 21일>

- 별계단 만들기 : 왼쪽에 빈칸틀을 채우고 반복문에 따라 #을 추가

- 문자열에 먼저 사이즈만큼 빈 문자열을 넣고 별로 하나씩 변경하면서 출력하는 방법도 있다.

- StringBuilder를 찾아보기! 문자열 처리시 필요한 기능들이 있다.

참조 : https://www.hackerrank.com/challenges/staircase/problem


<22년 03월 22일>

https://www.hackerrank.com/challenges/mini-max-sum/submissions/code/261927972

- 소트를 하지 않아도 비교하면서 넣을 수 있다. 

- 값을 바로 표출이 아니라, 변수에 담아서 출력하는게 어땠을까?

- 자바의 소트 3가지, 머지,인설션, 퀵소트, 듀얼 퀵소트

참조 : https://ict-nroo.tistory.com/52 


<22년 03월 23일>

- Collections의 메소드들 알아보자!

https://www.hackerrank.com/challenges/birthday-cake-candles/submissions/code/262103129

- 줄이 짧다고 다 좋은것은 아닌듯 하다. 

- 작업의 시간을 계산해 보고 그 계산이 비슷하다면 줄이 많더라고 작업의 순서가 더 명시적으로 되는것이 좋은듯 하다.

※ 동작 시간을 비교해볼것!


<22년 03월 24일>

https://www.hackerrank.com/challenges/time-conversion/problem?h_r=next-challenge&h_v=legacy 

- s.substring(index)를 그냥 사용하는 것은 하드 코딩이라고 부른다. 나혼자 사용하는것은 문제 없지만 협업을 위해서는 변수에 담아서 사용하는 것이 좋다. s.substring으로 사용했을때 이 s에 대한 값을 다시 찾아야 하며, 인덱스를 따져서 어떠한 값이 들어있는지 찾아야 하기 때문이다.

- 리턴은 바로 하는게 아니라 메세지를 담아 놓고 최종으로 리턴 할 수 있도록 한다.

※ 하드코딩 vs 소프트코딩

참조 : https://wakestand.tistory.com/540

 


<22년 03월 25일>

https://www.hackerrank.com/challenges/grading/problem?isFullScreen=false

- 반올림 판별 > 숫자 범위 구분 > 반올림 방식 (굳이 판별이 필요 없는 내용을 한다면 순서를 바꿔볼것!)

- 더 좋은 방식 : 그냥 나머지를 3의 차이로 판단하고 35점 이상에서 바로 반올림의 덧셈을 이어서 해주면 좋을듯


<22년 03월 28일>

https://www.hackerrank.com/challenges/apple-and-orange/problem?h_r=next-challenge&h_v=legacy

자바 foreach 대해 다시 리마인드 시킬것!

참조 : https://codechacha.com/ko/java-foreach/


 

<22년 03월 29일>

느낀점! : 반복문이 필요없을수도 있다. 수학적 머리를 좀더 돌려보자!

public static String kangaroo(int x1, int v1, int x2, int v2) {
    // Write your code here
        String result = new String("NO");
        int rem = 0;
        
        if (v1!=v2){
            rem = (x2 - x1) % (v1 - v2);    
        }
    
        if (v1>v2 && rem==0){
            result = "YES";
        } 
        return result;
    }

<22년 03월 30일>

https://www.hackerrank.com/challenges/between-two-sets/problem?h_r=next-challenge&h_v=legacy

최소공배수, 최대공약수 문제

 

참조 : https://bamtory29.tistory.com/entry/%EC%9E%AC%EA%B7%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C-%ED%98%B8%EC%A0%9C%EB%B2%95?category=1017098 

- 이전에 만든 내용은 코드가 필요없는 내용들이 있었다.

- 조금더 짧게 만들었다면 유클리드 호제법을 사용하지 않았어도 됐다


<22년 03월 31일>

https://www.hackerrank.com/challenges/breaking-best-and-worst-records/submissions

- return을 할때!

1. return값이 조작이 될때 (어떠한 상황에 따라 값이 바뀔때)는 return result;로,

2. 다 작업 후 한번만 리턴 해준다면 return Arrays.asList(배열 값);으로 하자!

 

gc값이 들어갈 수 있기 때문에
늘 지역변수들은 초기화 해주기!
자바는 좀 낫지만 C로 들어가면 자주 문제가 생긴다.

 

 

 

 

 

 

 

반응형