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; } }
import java.util.*; class Solution { public int[] solution(int[] arr, boolean[] flag) { ArrayList list = new ArrayList (); for(int i = 0; i < flag.length; i++) { if(flag[i]) { for(int j = 0; j < arr[i] * 2; j++) { list.add(arr[i]); } }else { for(int j = 0; j < arr[i]; j++) { list.remove(list.size()-1); } } } int answer[] = new int [list.size()]; for(int i = 0; i < list.size(); i++) { answer[i] =..