목록알고리즘테스트 (115)
거인의 코딩일지
class Solution { public int solution(int[] date1, int[] date2) { if(date1[0] date2[0]){ return 0; } if(date1[1] date2[1]) { return 0; } if(date1[2] date2[2]){ return 0; } return 0; } }처음에는 if- else if 문으로 answer 에 1일경우에만 대입해 보닌까 테스트 케이스는 통과하는데 채점결과 실패가 계속 떠서 처음부터 계속 리턴..
class Solution { public String solution(String my_string, int m, int c) { String answer = ""; String [] arr = my_string.split(""); for(int i = c-1; i < arr.length; i += m){ answer += arr[i]; } return answer; } } 우선 my_string 를 배열에 담아준뒤 for 반복문을 사용하여 i 를 c-1 이라고 할당하고 i 의 증가값은 m으로 하여 answer 에 추가하였다! class Solution { public String solution(String my_string, int m, int c) { String answer = ""; for (..
class Solution { public int solution(int num, int k) { int answer = 0; String str = String.valueOf(num); String [] arr = str.split(""); for(int i = 0; i < arr.length; i++){ if(arr[i].equals(String.valueOf(k))) { answer = i+1; break; }else{ answer = -1; } } return answer; } }이것 역시 int 형을 String 로 형변환 후 배열에 담아준 뒤 for 문을 통해 배열에 요소에 접근하여 equals() 를 사용하여 String 형으로 형변환 시킨 k 의 값이 있을때 answer 에다가 i+1을 담..
class Solution { public int solution(String number) { int sum = 0; String [] arr = number.split(""); for(int i = 0; i < arr.length; i++){ sum += Integer.valueOf(arr[i]); } return sum < 9 ? sum:sum%9; } }우선 모든 자리 값을 구해주기 위해 sum 이라는 변수를 선언해두고 String number 을 split() 를 통하여 배열에 넣어준뒤 for 문을 통하여 arr[i] 값을 int 로 변환시켜준뒤 sum 에 다 더해주고 return 에서 3항 연산자를 사용하여 return 해주었는데 흠.... 지금 생각해보면 굳이 삼항 연산자 안쓰고 sum%9 ..
class Solution { public int solution(int order) { String str = String.valueOf(order); String [] arr = str.split(""); int answer = 0; for(int i = 0; i < arr.length; i++){ if(arr[i].equals("3") || arr[i].equals("6") ||arr[i].equals("9")){ answer++; } } return answer; } } 우선 order 이라는 int를 String 로 형변환 시켜준뒤 String 배열에 split() 를 활용하여 넣어준뒤 for 문을 통하여 배열을 한바퀴 돌면서 if(arr[i].equals("3") || arr[i].equals..
class Solution { public String[] solution(String[] strArr) { int size = 0; for(int i =0; i < strArr.length; i++){ if(!strArr[i].contains("ad")){ size++; } } String[] answer = new String [size]; int j = 0; for(int i = 0; i < strArr.length; i++){ if(!strArr[i].contains("ad")){ answer[j++] = strArr[i]; } } return answer; } } 우선 answer 의 배열의 길이를 알기위해서 for 문을 실행시켜서 if(!strArr[i].contains("ad")) 라는 제약..
import java.util.*; class Solution { public int[] solution(int n) { List list = new ArrayList(); list.add(n); while(n != 1){ if(n%2 == 0){ n /= 2; }else if(n%2 != 0){ n = 3*n+1; } list.add(n); } int[] answer = list.stream().mapToInt(i->i).toArray(); return answer; } } 배열로 해결하기에는 answer 배열의 길이를 모르기에 list 를 활용해 보았다 while 문을 사용해서 n 이 1이 아닐경우 계속 반복되게 하였고 if- else 문을 활용하여 짝수 경우와 홀수 경우를 나누어서 list 에 추가..
class Solution { public int[][] solution(int n) { int[][] answer = new int [n][n]; for(int i =0; i < answer.length; i++){ for(int j = 0; j < answer.length; j++){ if(i==j){ answer[i][j] = 1; }else{ answer[i][j] = 0; } } } return answer; } } nxn 배열이기에 answer 배열의 길이를 설정해주고 이중 for 문을 돌려서 i == j 일 경우 1 그 위치에 1 을 넣어주고 아닐경우 0 을 넣어주라고 코드를 작성하였다.
class Solution { public int solution(int a, int b, int c) { int answer = 0; if(a == b && a == c && b==c){ answer = (a+ b+ c)*((a*a)+(b*b)+(c*c))*((a*a*a)+(b*b*b)+(c*c*c)); }else if(a != b && a != c && b!=c){ answer = a+b+c; }else{ answer = (a+ b+ c)*((a*a)+(b*b)+(c*c)); } return answer; } } 조건문을 통하여 조건을 정리해준뒤 answer 에 대입시켰다 조금 더 간단하게 하기 위해서 모두 같은 경우랑 모두 다른경우만 조건에 넣어주었고 나머지 경우의 수는 else 안에 모두 통일 시..
class Solution { public String solution(int age) { String answer = ""; String str = String.valueOf(age); String [] arr = str.split(""); for(int i = 0; i< arr.length; i++){ answer += (char)(Integer.valueOf(arr[i])+97); } return answer; } } int age를 String 형으로 형변환 하여주고 arr 이라는 배열에 하나씩 쪼개서 넣어준뒤 for 반복문을 통하여 다시 숫자로 바꿔주고 97을 더해준 다음 char 형으로 형변환 하여서 answer 에다가 더해주었다. 97을 더한 이유는 아스키코드를 활용하였기 때문이다! a = ..