12월 초부터 dale님이 운영하는 코딩 테스트 스터디에 참석 중이다. 지금이 3주차인데, 블로그를 너무 버려두고 있는 것 같아서 조금씩 다시 써보려고한다. 1주차 문제는 다음과 같다. 1. Contains Duplicatehttps://leetcode.com/problems/contains-duplicate/class Solution { public boolean containsDuplicate(int[] nums) { Set numSet = new HashSet(); for (int num : nums) { if (numSet.contains(num)) { return true; } n..
백준에서 코테 문제를 풀다보면 느끼겠지만, 입/출력 쪽에서 시간 초과가 자주 발생한다. (분명 알고리즘은 맞았는데, 계속 시간초과가 나면 대부분 이 문제다..) 각각 어떤 곳에서 문제가 발생하는지 파헤쳐보자. 입력 문제 입력에 문제가 생기는 경우는 대부분 Scanner를 써서 여러번 next()나 nextInt()으로 가져오는 경우다. 입력에 문제가 생겼던 문제는 탑 이었다. 50만번은 딱히 많아보이지 않는 갯수이다. N번 정도는 그냥 하면 되는거 아냐? 라고 생각할 수 있겠지만 next의 코드를 따라가보면 문제가 있다는 걸 알 수 있다. public String next(Pattern pattern) { ensureOpen(); if (pattern == null) throw new NullPointe..
멘토링 준비도 할 겸해서 코딩 테스트 고수 지인 분의 도움을 받아 코딩 테스트 문제를 조금씩 풀고 있다. 솔직히 피곤하고 힘들지만 한달간 꾸준히 푼 결과 solved.ac에서 측정하는 레벨이 꽤나 올랐다. 어떤 카테고리부터 푸는게 좋을지 고민 중이었는데, 스택을 추천 받았다. 그런데, 스택 코딩 테스트 문제는 일반적인 자료구조 사용법과 같이 만만하지 않았다. 브론즈부터 벽을 좀 느꼈달까 문제를 푼 순서는 다음과 같다. 1. 막대기 : https://www.acmicpc.net/problem/17608 2. 괄호 : https://www.acmicpc.net/problem/9012 3. 탑 : https://www.acmicpc.net/problem/2493 4. 스카이라인 쉬운거 : https://www..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120888 2. 풀이 코테에서 중복을 한번에 처리하는 Set은 흔하게 사용되는데, 이번 문제는 선입선출이 필요했다. 즉, 순서가 있다는 말인데 Set은 순서를 보장하지 않는다. 다행히 자바에서는 LinkdedHashSet이라는 순서를 보장해주는 Set 자료구조가 있어 이를 활용해 풀었다. 다른사람 코드를 둘러보던 중 chars가 stream처럼 동작한다는 걸 알게되었다. 그리고 확실히 stream게열이 자바에서는 직관적이고 좋은 개발방법인것 같다. String의 세부사항을 처리하는데 활용해봐야겠다. 너무 오랜만의 코테라 레벨 0부터 감을 잡아가고 있는데, 생각보다 공부가 많이 된다. 3. ..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120907 2. 풀이 직전에 풀었던 풀이와 동일한 스타일로 풀었다. 가장 일반적인 접근은 공백(" ")으로 split을 한후 고정된 위치의 값을 얻고, 비교하면 것이다. 내 답안의 코드를 보면 알 수 있지만, 런타임 에러가 나는 경우는 15 - -5 = 10 위와 같은 테스트케이스가 들어오면 런타임 에러가 나니 주의가 필요하다. 개인적으로 스트림을 좋아하는데 인상깊었던 답안은 진짜 일반적인 자바코드에서 보기 어려운 길고긴 스트림을 썼다. 나도 저렇게 쓸 수 있는 날이 올까? 3. 코드 내 답안 import java.util.*; class Solution { public String[] s..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120902 2. 풀이 어떻게 처리해야하나 고민을 많이하다가 그냥 쌩노가다를 박은 문제 String 타입의 마이너스 기호(-)가 붙은 문자열을 parseInt하면 그냥 음수로 저장되는 것까지는 이미 알고 있었지만, 앞뒤로 붙은 공백을 제어하지 못했다. 그래서 싹날리고 풀었다. 내 답안은 생각가는 대로 짜서 읽기는 쉽다. 그리고 개인적으로 인상 깊었던 풀이하나를 더 첨부한다. stream을 사용했고, 음수를 위한 처리와 자연수화 하는 과정이 정말 마음에 들었다. 3. 코드 내 답안 import java.util.*; class Solution { public int solution(String..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120911 2. 풀이 솔직히 어려운 문제는 아닌데 최종 return을 위해 String으로 만드는 방법들이 재밌어서 정리해봤다. 나도 나름 괜찮게 짰다 생각하는데 다른사람 답중에 꽤나 인상깊은게 있어서 추가했다. 3. 코드 내 답안 import java.util.stream.Collectors; import java.util.*; class Solution { public String solution(String my_string) { String[] arr = my_string.toLowerCase().split(""); return Arrays.stream(arr).sorted().co..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120922 2. 풀이 수학문제를 조금 풀어본 적이 있다면, 보자마자 점화식 관련 문제인지 파악할 수 있었을 것이다. 2 x 2 = 3 2 x 3 = 5 3 x 2 = 5 3 x 3 = 8 4 x 2 = 7 4 x 3 = 11 5 x 2 = 9 5 x 3 = 14 조건에서 M >=N 일 때, N x (M -1) + (N -1) 이라는 결과를 도출해 낼 수 있어야한다. 3. 코드 class Solution { public int solution(int M, int N) { int answer = 0; int up = M; int down = N; if( M
- Total
- Today
- Yesterday
- cache
- S3
- OpenFeign
- Kotlin
- terraform
- Log
- AWS
- 스프링부트
- GIT
- 후쿠오카
- AWS EC2
- CloudFront
- ChatGPT
- openAI API
- JWT
- EKS
- AOP
- 람다
- OpenAI
- springboot
- lambda
- serverless
- 티스토리챌린지
- Spring
- 오블완
- MySQL
- elasticsearch
- docker
- java
- Elastic cloud
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |