본문 바로가기

전체 글

(112)
TIL_2024_12_17 설명이 굉장히 복잡하다고 생각했던 문제였습니다. 제한사항도 배열의 길이는 10만이고 원소의크기는 천만이라 많은 시간이 걸릴것으로 예상되는 문제였습니다. import java.util.*;class Solution { public int solution(int k, int[] tangerine) { int answer = 0; //큰수를 우선순위로 갖는 우선순위 큐 PriorityQueue pq = new PriorityQueue(Collections.reverseOrder()); //귤 배열을 정렬 Arrays.sort(tangerine); int before = tangerine[0]; int c..
TIL_2024_12_13 그림이 있는 문제는 어려워서 조금 쫄았는데요 조금만생각해보면 쉬운 문제였습니다. 갈색과 노란색의 합이 총넓이 이고 이 넓이로 만들수있는 가로와 세로의 경우의 수 중에서 가로-2*세로-2 의 값이 노란색인 녀석 (갈색은 무조건 테두리 1줄만 칠해져있기때문) 을 찾으면 됩니다class Solution { public int[] solution(int brown, int yellow) { int[] answer = {0,0}; //넓이는 노란색+갈색 int area=brown+yellow; //노란색은 가로-1*세로-1 무조건이다 갈색이 1줄만있다고 문제에 적혀있음 for(int row=area; row>1; row--) { ..
TIL_2024_12_11 며칠 전 해결한 문제와 유사한 문제같습니다.문자열에서 1의 갯수를 구하는 방법은 length()로 길이를 구한뒤 문자열에서 1을 ""으로 변환하고 난 후 길이를 구한뒤 차를 구하면됩니다.class Solution { public int solution(int n) { String s = Integer.toBinaryString(n); //일단 n을 2진수로 변환 int bef = s.length(); s = s.replace("1",""); int aft = s.length(); int oneCount = bef-aft; return qwe(n,oneCou..
TIL_2024_12_10 딱봐도 복잡해보이는 문제이다. 하지만 단계를 생각해서 로직을 작성하면 어렵지 않다. 일단 이진 변환 횟수(Count)와 제거된 0의 갯수(remove)를 구해야한다.로직의 순서는1. 기존 문자열의 길이를 구한다.2. 0을 제거한다 (replace)3. 변경된 문자열의 길이를 구한다 (그러면 제거된 0의갯수를 알수있게된다)4. 제거된 0의 갯수를 합산한다.5. 변경된 문자열의 길이를 2진수로 변환한다.6. 이진 변환 횟수 (Count)를 증가 시킨다.class Solution { public int[] solution(String s) { int remove = 0; int count = 0; while(s.length()>1) { ..
TIL_2024_12_09 오늘의 코테처음보는 스택활용 문제스택은 자료구조중 하나로 먼저들어간 녀석이 나중에 나오는 LIFO (Last In First Out)의 구조이다.FIFO구조인 큐랑은 정반대의 구조왼쪽 괄호와 오른쪽 괄호를 짝으로 생각하고 왼쪽과 오른쪽의 합이맞는순간 스택에서 제거하는 방식으로 로직을 구성했다.import java.util.*;class Solution { boolean solution(String s) { Stack stack = new Stack(); try{ for(char c : s.toCharArray()) { if(c=='(') { stack.push(0); ..
TIL_2024_12_06(스트림은 성능을 많이먹는다??) 문제의 해결방법은 기존의 s 문자열을 공백 단위로 쪼갠뒤 for문을 돌려서 최소값과 최대값을 찾으면 되는 간단한 문제 class Solution { public String solution(String s) { String answer = ""; //공백 기준 자르기 String[] stChange=s.split(" "); // {1,2,3,4} 와 같이 리턴 int[] array=new int[2]; //[0] 은 최소값 [1]은 최대값 array[0]=Integer.parseInt(stChange[0]); array[1]=Integer.parseInt(stChange[0]); for(..
TIL_2024_12_02(코테-피보나치수열 활용) 안녕하세요 오랜만입니다.  코테-피보나치오늘은 이 문제와 싸웠습니다.뭔가 규칙이 있을법한데 ... 싶어서 세보니 피보나치 규칙이였습니다. 다른분들도 피보나치 수열로 푸셨더라구요 하지만 뭔가 이상했습니다 지금까지의 코딩테스트의 문제는 직관적인 규칙들이 존재해 로직을 작성했는데 이 문제는 뭔가 피보나치 수열을 사용해야 한다는 것을 직관적으로 파악 할 수 없었습니다. 그런데!!!!  다른분의 풀이에서 알게 된 사실은 이문제는 N칸까지 가는 경우의 수는 N-1 칸에서 1칸 뛴 경우의 수와 N-2에서 2칸 뛴 경우의 수의 합이라는 공식을 알게 되었습니다!!즉 N칸인 경우의 수=N-1칸의 경우의수 + N-2칸의 경우의 수 로 정확하게 피보나치 수열과 일치해 궁금증을 해결 할 수 있었습니다!!!
TIL_2024_10_18(KPT회고,프로젝트 트러블슈팅) https://github.com/TrelloSoEasy/Project_TSE/wiki/queryDSL%EC%9D%84-%EC%9E%91%EC%84%B1%ED%95%98%EB%8B%A4%EA%B0%80-%EC%83%9D%EA%B8%B4%EB%AC%B8%EC%A0%9C쿼리DSL을 작성하다가 생긴문제 queryDSL을 작성하다가 생긴문제Contribute to TrelloSoEasy/Project_TSE development by creating an account on GitHub.github.com이길환Keep:작업하면서 분위기가 너무좋았습니다. 실시간으로 소통하고 답변받고 도움받아서 좋았습니다!!!! Problem: 작업하시다가 자리에 안계시는 경우 어떤사유로 얼마나 자리를 비우는지 잘모르는경우가 있어..