목록코딩테스트/프로그래머스 (53)
Jam's story
class Solution { public int solution(int n) { int answer = 1 , cnt=0; for(int i=3; i
class Solution { public String solution(String[] seoul) { String answer = ""; for(int i=0; i
문자열 길이에서 통과가 되면(문자열길이가 4이거나 6이면) for문으로 문자열을 돌면서, 숫자인지 확인하고, cnt 증가 cnt랑 문자열 길이가 같다면 true 아니면 false class Solution { public boolean solution(String s) { boolean answer = false; int cnt=0; if(s.length()==4 || s.length()==6) { for(int i=0; i
대문자와 소문자의 차이는 무시하니까 모두 다 대문자로 변환 조합들을 넣을 s1, s2 ArrayList 선언 교집합과 합집합을 넣을 ArrayList 선언 for문으로 해당인덱스랑 그 다음인덱스를 가져와서 문자인지 확인하고 . 문자라면 둘을 합해서 s1, s2에 넣기 정렬을 해준후에 for문으로 s1을 먼저 돌린 담에 s1와 s2를 비교하면서 있다면, s2에서 s1의 공통부분을 지운담에 교집합 집합에 넣어주고 없다면 합집합에 넣어준다 . s2를 돌면서 남은 것을 합집합에 넣어준다. (겹친거는 이미 지워졌으니 ) zacard 구하기 union사이즈- >분모가 0이면, 1 반환 import java.util.*; class Solution { public int solution(String str1, Str..
ArrayList로 풀이하니 효용성 실패 import java.util.*; class Solution { public int solution(String s) { ArrayList array = new ArrayList(Arrays.asList(s.split(""))); int i = 0; while(i < array.size() - 1) { if (array.get(i).equals(array.get(i+1))) { array.remove(i); array.remove(i); i = 0; continue; } i++; } if (array.size() == 0) return 1; else return 0; }} Stack 으로 풀기 import java.util.*; class Solution { p..
처음에 ArrayList로 풀었는데 정답은 맞았으나 효율성테스트에서 실패하였다.. import java.util.Arrays; import java.util.ArrayList; import java.util. Collections; class Solution { public int solution(int[] scoville, int K) { int answer = 0; int sco=0; ArrayList list=new ArrayList(); for (int i = 0; i < scoville.length; i++) { list.add(scoville[i]); } while(sco 1 && pq.peek() < K) { pq.add(pq.poll() + pq.poll() * 2); cnt++; } re..
닉네임이 계속 갱신되고, 아이디랑 짝이되니까 HashMap으로 생성 결과를 ArrayList에 담아준다 record 길이만큼 for문을 반복하여 Enter, Change인 경우에 닉네임이 바뀌니 substring으로 잘라서 map에 아이디와 닉네임을 넣어준다. 다시 for문을 record길이만큼 반복하여 enter와 leave일때만 메세지를 출력하니, 메세지를 출력해주고 int형 배열로 바꿔서 반환 import java.util.*; class Solution { public static String[] solution(String[] record) { String[] answer = {}; String id=""; String name=""; //아이디와 닉네임 HashMap map=new HashMa..
count 변수는 똑같은문자열의 갯수를 세는 변수인데, 문자열을 자르는 동시에 하나가 생기므로 1로 지정 첫번째 for문은 문자열을 몇개의 문자로 자를건지 ,1개부터 시작 문자열을 자르는 것은 문자열의 반을 넘을 수 없으니 끝값은 s.length()/2 pre 변수에 substring으로 i만큼 자른 문자열을 저장해줌 두번째 for문은( 연속으로 같아야하니까 )그 다음 비교할 문자열 블럭을 만들기 위함 그래서 i부터 시작을 했고, 문자열 길이 끝까지 탐색 endIdx는 배열의 인덱스를 넘지않기위해 만든것, ((c+3)이면 넘어가니,, ) j인덱스부터 시작해서 i개만큼 더한 인덱스랑, (substring 두번째 인자에 들어갈꺼니까 -1이되므로) s.length()비교해서 j+i이 더크면 문자열 길이가 들어..