1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/131705 2. 풀이 이 문제를 보자마자 떠올려야할 게 있다. 조합(Combination) 문제라는 것. 때문에 대략적인 시행 횟수를 예측할 수 있다. 주어진 조건을 보면 3 ≤number의 길이 ≤ 13 을 보면 최대 시행 횟수는 13C3 = 286인 걸 알 수 있다. 조건만 맞추면 다중 for문을 마음껏 써도된다는 뜻이다. 모든 조건을 탐색하기 때문에 Brute Force 문제라고도 할 수 있겠다. 3. 코드 class Solution { public int solution(int[] number) { int answer = 0; for(int i =0; i
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/133502 2. 풀이 자료구조를 조금 안다면, Stack문제라는걸 바로 파악할 수 있다. 4개를 pop 했을 때, 후입선출 자료구조기 때문에 역순 빵 - 고기 - 야채 - 빵인지 판별 해서, 햄버거가 완성되면 빼고 완성되지 않으면 역순으로 삽입하면된다. 배열 값이 1인 빵의 개수를 센다. 스택에 삽입 빵의 개수가 짝수가 됐을 때부터 4개씩 pop하면서 햄버거인가 판별한다. 햄버거로 판별되면, 정답+1 / 빵개수 -2 햄버거가 아니면 역순으로 삽입 개인적으로 코드는 숏 코딩이고 뭐고 직관적인게 최고라고 생각한다. 내가 짠 코드가 최고란 뜻은 당연히 아니다.. 3. 코드 import java...

1. Array 에서 ArrayList 변환 1.1. Stream 이용 String[] arr = new String [] {"1", "A", "a", "b"}; List list = Arrays.stream(arr).collect(Collectors.toList()); System.out.println(list.getClass().getName()); 결과화면 : 1.2. Lists 클래스 이용 String[] arr = new String [] {"1", "A", "a", "b"}; List list = Arrays.asList(arr); list.forEach(System.out::println); 결과화면 : 2. ArrayList 에서 Array 변환 2.1. toArray() 이용 String..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/138477 2. 풀이 어쩌다 보니 계속 우선순위 큐 문제를 풀게 됐다. peek()을 알면 쉽게 풀 수 있다. peek()은 우선순위 큐의 값을 pop 하지 않고, 맨 앞 값을 가져올 수 있다. 오름차순으로 자동 정렬되는 우선순위 큐에서는, 맨 앞 값이 최하위 점수가 된다. 정리하면 아래와 같은 순서로 구현했다. 우선순위 큐와 정답을 ArrayList로 저장할 answerList 정의 우선순위 큐에 k개가 다 차기 전에는 우선순위 큐에 무조건 삽입 peek() 함수를 통해 우선순위 큐의 맨 앞의 값을 가져와 answerList에 삽입 k개가 다 차면, score와 우선순위 큐의 맨 앞의 값..

내가 운영/개발 하는 서비스에선 사용자나, 구분이 필요한 무언가를 위해 13자리의 난수를 생성해 아이디를 부여한다. 난수 생성기를 올바르게 사용하지 못 한다면, 동일한 아이디가 생성되고, 그 아이디로 특정 데이터를 insert했을 때 DB에선 PK 에러가 발생한다. 빼도 박도 못하는 서버 에러다. 최근 로스트아크에서 카드 확률에 대한 논쟁이 있었었다. 영웅 카드 팩 230개를 개봉했다. 첫 개봉에서 사이카 카드 5장, 피요르긴 카드 5장이 등장했다. 190개를 개봉했지만 똑같이 사이카, 피요르긴 카드 5장씩만 나타났다. 스마일게이트의 설명에 따르면 해당 사례는 시스템 구조상 14억분의 1 확률로 발생할 수 있는 버그 현상이라고 설명했다. 출처 : 게임톡(https://www.gametoc.co.kr) 이..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/134240 2. 풀이 팰린드롬을 만드는 문제 칼로리 높은 것을 먼저먹기 때문에, 마지막 행렬의 index부터 처리하도록 한다. 매우 난이도가 낮은 문제다. 3. 코드 class Solution { public String solution(int[] food) { String answer = "0"; for(int i=food.length-1; i>=1;i--){ if(food[i] / 2 > 0) { String eatable = String.valueOf(i); for(int j =0; j
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/135808 2. 풀이 1. 우선순위 큐를 역순정렬되도록 정의 2. 우선순위 큐에 삽입한다. 반복문을 사용하긴 했지만, N번이기 때문에 별 문제는 없다. 3. while문을 통해 이익 계산식을 수행한다. - 역순 정렬을 했기 때문에, 한 상자에 들어가는 마지막 사과가 전체 가격을 결정한다. 4. 마지막 값만 관심이 있고 나머진 다 pop 처리 3. 코드 import java.util.Collections; import java.util.PriorityQueue; class Solution { public int solution(int k, int m, int[] score) { // 우선순위..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/118666 2. 풀이 성격 유형의 갯수가 많지 않기 때문에 하드 코딩하고 풀면 쉽다. 그리고 성격 유형의 점수를 직관적으로 구분하기 위해 모르겠음을 0점으로 fix 해서 result 행렬에 성격 유형 점수의 통계를 구했다. 3. 코드 class Solution { public String solution(String[] survey, int[] choices) { String answer = ""; int[] score = new int[]{-3,-2,-1,0,1,2,3}; String[] type = new String[]{"RT","CF","JM","AN"}; String[] rever..
- Total
- Today
- Yesterday
- GIT
- EKS
- 오블완
- lambda
- 스프링부트
- Log
- S3
- CORS
- AWS EC2
- 인프런
- AWS
- ecs
- 후쿠오카
- OpenAI
- Redis
- ChatGPT
- docker
- cache
- elasticsearch
- springboot
- JWT
- 티스토리챌린지
- Kotlin
- terraform
- AOP
- CloudFront
- serverless
- java
- Spring
- 람다
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |