<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
최소공배수, 최대공약수 문제
- 이전에 만든 내용은 코드가 필요없는 내용들이 있었다.
- 조금더 짧게 만들었다면 유클리드 호제법을 사용하지 않았어도 됐다
<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로 들어가면 자주 문제가 생긴다.
'코딩 공부(hackerrank)' 카테고리의 다른 글
[Java] List<Object> list = new List<Object>(); 안되는 이유 (0) | 2023.01.10 |
---|---|
[Java] String.format 소수점 표기법 (0) | 2023.01.10 |
[Java] String vs StringBuilder (0) | 2023.01.10 |
[Java] for문, foreach문, List.forEach() (4) | 2023.01.10 |