내게 주어진 첫 코딩테스트.코테의 코자도 모르던 나는 뭐가 어떻게 동작하는건지도 모르고 알고리즘을 짜려고 시도했다.하지만 뭘 어떻게 시작해야 하는지도, 뭘 어떻게 끝내야 하는지도 모르기에 오류의 연속...앞으로 잘하면 되겠지 싶어 코테는 어떻게 하는것인지 알기 위해 정
와아아ㅏㅇ 드디어 풀었다!!! 간단했던 덧셈을 제외하면 ㅈ첫 문제라 할 수 있겠다. 하루 종일 이렇게 해보고 저렇게 해보고 요렇게 해보고 운동하고 해보고 밥먹고 해보고 설거지하고 해보고 샤워하고 해보다가 다른분의 도움으로 내가 테스트케이스를 잘못 입력한 것을 깨달았
두배 만드는 것은 length를 length로 오타낸 것을 빼면 쉬웠다.한가지 아쉬운점은 numbersi+=numbersi; 가 아닌numbersi\*=2; \~~\_를 사용했다면 코드가 더 직관적이었을 것 같다.이런 부분을 앞으로 적용해나가면서 코딩해야겠다.class
배열 뒤집기 또한 앞서 최빈값 구하기에서 배열에 대한 학습을 선행했기에 어려움은 없었다.처음에 놓쳤던 부분 한가지는 num_listnum_list.lenght 가 배열의 크기를 넘어간다는 것이닫. 다음부터는 배열이 0부터 시작한다는것을 염두에두고 꼭 -1을 붙일지말지
하나의 깨달음: import java.util.\*; 이란게 자바의 util을 모두 import하는 뜻이었구나!문자열 뒤집기는 toString에 대한 이해때문에 오래 걸렸다.charAt을 사용하여 받은 문자열을 만든 char 배열에 거꾸로 넣은후 이걸 toString에
이번엔 정말 별거 없었다. 점점 발전해가는 나 자신이 보인다.다만 rsp를 srp로 써놓고 뚫어져라 바라보던 나 자신을 되돌아보며 다시한번 똥멍청이는 되지 말자.처음에 if문을 썼는데, switch문이 조금이지만 코드의 중복을 줄일 수 있을 것 같아 바꿔보았다.impo
너무나도 EZ하다.처음에 if문과 if else를 4번 썼는데,다른 사람의 풀이를 보니 if문 속에 if를 한번 더 넣으면 식이 깔끔해지더라.그래서 내가 아는 선에서 최대한 줄여서 써봤다.class Solution { public int solution(int\[
나는 이제 입문을 마스터 한것인가? 거침없이 풀었다. 이것을 밸로그에 올려도 될까 고민이 될 정도.
보자마자 아스키코드를 이용한다는 것을 알 수 있었다.처음에는 answer+= my_string.charAt(i)-32; 라고 쓰니 숫자만 출력되었다.(a에 대하여 65가 출력됨)그래서 앞에 (char)를 붙여줬는데도 똑같이 숫자만 출력되어(my_string.charAt
이전에 했던 내용을 바탕으로 answer에 문자 하나씩 더해주면 큰 어려움은 없었다.for문으로 반복하다가 i와 num1 혹은 num2가 같아지면 저장해뒀던 값으로 바꿔주면 그만인 것이다.그런데 다른 사람의 풀이를 보다가 valueOf라는 것을 보게 되었다.이건 다양
처음 인텔리제이에 코드를 작성 할 때, 문자열 비교에if (s1i==s2j) 라고 실행했다.인텔리제이에서는 문제가 없었지만, 웹에서 문제를 제출하니 오류가 떴다.answer의 값이 ++ 되지 않는 것이었다.문자열 비교 메서드인 boolean equels를 사용하니 드디
처음엔 for문을 이용하여 풀었다.k와의 비교연산자가 제대로 작동하지 않아서 여러가지 시도한 끝에 '0'을 더하는 것으로 결과가 나왔다.아쉬운점은,이전에 배운 valueOf를 잊어버리고 ""를 더해버렸는데, 오히려 좋아?아니다 valueOf를 썼다면 numS를 선언하지
실수도 실력
어려움은 없었으나, 다른 방법은 없을까?
substring()
Math 함수 공부해야겠다
어려웠다.
Arrays.copyOfRange, Arrays.sort()
toList() 자바 버전..!
나의 풀이, hashmap을 이용한 풀이, getOrDefault
문제를 읽은 그대로 풀어내는게 일단 자바 언어 연습엔 도움이 되긴 하는데.... 으으음 나도 하다보면 응용해서 더 간단하게 풀겠지.
어려움 없던 문제
문제를 이해하는게 제일 어려웠던..하하
큰 어려움은 없던 문제
설계: 1. 비교,삭제 2. 없으면 No return --> ArrayList 이용
박스에 담긴 개수만큼 건너뛰는 방법이 관건.
소수 찾기: 제곱근 판별
Integer List를 int 배열로 : list.stream().mapToInt(i->i.intValue()).toArray();
고정관념을 깨부수자
시간 초과 -시간복잡도
미뤄뒀던 level 2 문제, stream의 average 메서드
미뤄뒀던 level 2 문제
미뤄뒀던 level 2 문제
미뤄뒀던 level 2 문제, stream의 filter와 findFirst 메서드
미뤄뒀던 level 2 문제, 오버플로우 주의!
어렵지 않았다
못풀었다! contains(), replace(), | (비트 OR 연산자)
서술하듯 풀기 연습?
StringBuilder와 append
머리를 굴려보면 답이 나오던 문제
풀기 전에 다각도로 생각해 볼 것!
skip의 문자 건너뛰는게 핵심!
문제를 잘 이해하자! 삭제뿐만 아니라 덮어씌우기로도 가능.
Integer.MAX_VALUE, Math.min +MIN
이렇게 길어진다니
쉽네..? -> 시간초과, map의 replace 메서드
substring, split, 메서드 생성
간결하게 만들 방법을 궁리, indexOf
stream.distinct(), computeIfAbsent, getOrDefault, stream.filter()
stream.max(), stream.min()
String: toLowerCaser(), toUpperCase()
Integer.toBinaryString() : 10진수를 2진수 String으로
피보나치수, 수학 공식, 동적계획법, 재귀호출
문제를 잘못 읽고 복잡하게 풀었다. 제곱근 판별식도 사용하자!
비트연산자 ^ : 두 개의 비트가 서로 다른 경우에 1을 반환하는 XOR 연산 (비트연산으로 하신 분 대단...)
GCD(Greatest Common Divisor), 최대공약수 / 최소공배수... 를 뛰어넘는 팀원분의 풀이
잘 보면 피보나치수열이었다.
sort 람다식, Collections.sort( list , Collections.reverseOrder() )
Stack 문제!
알고리즘!
Queue, Arrays.stream(elements, j, j+i).sum()
LongStream, stream.rangeClosed, ...
행렬의 곱 (AxB)x(BxC) -> AxC
ArrayList의 contains, remove
Iterator : 컬렉션 객체를 순회, 접근
stream.filter , 효율적인 풀이..!
우선순위 정렬할껄!
Character.getNumericValue()
Math.sqrt(a,b) : b제곱근a
String의 stream
Map의 getOrDefault()
stream.min().getAsInt()
Arrays.sort();
알고리즘에 예외처리를 쓰다니!
배열에 null 이 할당!?
"문자열".toUpperCase() / Character.toUppserCase('문자')
문제 정답 코드 10진법을 3진법으로 바꾸는 것은 학창시절 배운 것을 응용하여 구할 수 있었다. 나머지가 각각의 자리수가 되는것..! 그것을 뒤집어 놓으면 되니 tr로 선언해놓은 문자열의 뒤쪽으로 더하기만 하면 되었다. 주의 할 점은 나머지만 더하는게 아니라 마지막
Comparator
List: Collections.sort(), 배열: Arrays.sort(), Arrays.copyOfRange(배열, 포함인덱스, 포함x인덱스)
아스키 코드!
.indexOf("확인할 값") -> 순번 or -1 반환... Arrays.asList(arr) -> List, new ArrayList<>(Arrays.asList(arr)) -> ArrayList
투 포인터 기법!
배열을 내림차순 정렬: Collections.reverseOrder(Arrays.asList(Arrays.sort(arr)))>
문제 정답 코드 이전에 풀어볼 때의 replace라는 메서드가 생각나서 사용하였다. 예전에는 해당 문자열이 포함되어 있는 경우에 replace를 사용했는데, 위와 같이 해당 문자열이 없다면 넣어준 문자열이 그대로 반환된다는 것을 알게 되었다. .replace(" ","") 를 했다면, 혹은 replaceAll()을 사용했다면 좀 더 간결했을 터인데....
StirngBuilder, list를 역정렬(Comparator)
Map 자료구조의 value 순회: map.values()
이전 포스팅: 최댓값과 최솟값 (자바) 문제 정답 풀이 이전 풀이는 stream 을 이용해서 한줄로 풀이하였다. 코드는 가독성 있게 작성하여 누구나 쉽게 해석 할 수 있도록 만들어야하며, 성능도 고려해서 작성해야한다. stream으로 한줄로 작성하는게 멋지다(?)라고 느낄 수는 있겠지만 나는 오늘의 풀이가 더 좋은 풀이라고 생각한다. 다른 사람 ...
깔끔한 코드 작성을 목표로!
깊이/너비 우선 탐색(DFS/BFS)
collect 메서드, Comparator, StringBuilder