문제문제 분석 우선은 주어진 참가자와 완주자를 정렬을 해줍니다.정렬을 하게 되면 아래와 같은 형식으로 배열이 정렬되게 됩니다.이후에는 완주자의 인원수만큼 1:1로 비교를 해주게됩니다. 참가자와 완주자가 다르게 되면 해당 참가자를 리턴 해주면됩니다.비교적 간단하지만 리턴개념을 익히지 못해서 이해하는데 많은 시간을 보냈습니다.코드12345678910111213141516171819202122232425262728293031 import java.util.*; class participants{ public String solution(String[] participant,String[] completion) { Arrays.sort(participant); Arrays.sort(completion); int..
문제 문제분석 - 다른사람들의 코드를 참고하여 알고리즘을 이해하였습니다. N번째의 문자를 빼는 것까지는 생각을 하였지만, 이후에는 어떤 방법을 사용해야하는지 생각을 하지 못했습니다. 개인적으로 LEVEL1단계에서 좀 난해한 문제가 아니였다 생각합니다. 코드 프로그래머스 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import java.util.*; class Solution { public String[] solution(String[] strings, int n) { ArrayList list = new ArrayList(); for(int i=0;i
문제 문제 분석commands 는 2차원 배열로 첫번째는 시작점, 두번째는 끝지점, 그리고 마지막 세번째는 자른배열안에서 K번째의 자리를 꺼내라 라는 의미를 갖고있습니다. 여기서 commands[i][j] j가 0이면 시작점, 1이면 끝지점, 2이면 K번째 수 이처럼 정해져있으며, i가 계속해서 변하는 수 이기에 i를 계속해서 변화 시켜 주면 됩니다. 하지만 i가 가르키는 지점은 0번부터 시작하는 것이 아니고 1번부터 시작하기에 commands[i][0~2] -1을 통해 배열을 찾아갈 수 있도록 해줘야합니다. k번째도 똑같이 해주면됩니다. 코드 프로그래머스12345678910111213import java.util.*;class Solution { public int[] solution(int[] arr..
문제 문제해석문제는 비교적 간단합니다. 현재 위치의 값과 다음값을 비교하여 같은면 넘어가고 다른면 현재위치의 값을 배열에 저장을 해주면됩니다.만약에 문제에서 정렬을 하라는것이 있었으면 sort메소드를 이용하여 정렬을 하면됩니다.하지만 문제는 마지막위치에 있는 값을 "어떻게 비교하냐" 입니다.결론적으로 마지막에 있는 값은 그전의 값과 같던, 틀리던 무조건 배열에 저장을 해주면 됩니다. 왜냐하면 만약에 4,4,4,3,3 라는 배열이 주어지게되면 우선 2번째와 3번째 값이 다르기 때문에 4라는 값이 배열에 저장이 될것이며, 다음 3번째와 4번째 값이 같기 때문에 배열에 저장되지않습니다.그리고 다음으로 넘어가 4번째와 5번째 둘이 비교를 해야하지만 5번째 위치의 값이 존재 하지 않기때문에 outOfBounds라..
Method Explanation length() 문자열의 길이를 반환한다 equals() 문자열dl 일치하는지를 검사한다 equalslgnoreCase() 대소문자 구분 없이 문자열이 일치하는지를 검사한다. substring() 부분 문자열을 구한다. replace() 문자열을 치환한다. toUpperCase() 문자열을 대문자로 바꾼다. toLowerCase() 문자열을 소문자로 바꾼다. charAt() 특정 문자를 반환한다. trim() 문자열의 앞과 뒤에 있는 공백 문자를 제거한다. concat() 문자열을 연결한다. split() 특정 문자를 기준으로 문자열을 분리하여 배열로 리턴한다. indexOf() 특정 문자의 인덱스 값을 리턴한다. 일치하지 않으면 -1 을 리턴한다. valueOf() 문..