class Solution { public int solution(int[] num_list) { int answer = 0; for(int i = 0; i < num_list.length; i++) { while(num_list[i] != 1) { answer++; if(num_list[i] % 2 == 0) { num_list[i] = num_list[i] / 2; } else { num_list[i] = (num_list[i] -1) / 2; } } } return answer; } }
class Solution { public String solution(String myString, String pat) { String answer = ""; for(int i = myString.length()-1; i >= 0; i--) { answer = myString.substring(0, i+1); if(answer.endsWith(pat)) { break; } } return answer; } } endsWith는 Boolean형으로 문자열이 특정 문자열로 끝나는지 체크 반대로 startWith는 문자열이 특정 문자열로 시작하는지 체크
class Solution { public String solution(String[] seoul) { String answer = ""; int cnt = 0; for(String str : seoul) { if (str.equals("Kim")) { answer = "김서방은 " + String.valueOf(cnt) + "에 있다"; } cnt ++; } return answer; } }
class Solution { public int solution(int num) { int answer = 0; if(num == 1) { return 0; }else { while (num != 1) { if (answer > 500) { return -1; } if(num % 2 == 0) { num = num / 2; } else { num = (num * 3) + 1; } answer++; } } return answer; } } test3에서 자꾸 실패해서 알아보니, 오버플로우가 생긴다면 음수인 경우에도 계속 계산을 진행하면서 int 범위를 넘어서기 때문에 정확한 계산을 할 수 없다고 한다. 그래서 int를 long으로 형변환해주었다. class Solution { public int solu..
class Solution { public int solution(int[] absolutes, boolean[] signs) { int answer = 0; for(int i = 0; i < signs.length; i++) { if(!signs[i]) { absolutes[i] *= -1; } answer += absolutes[i]; } return answer; } }