전체 글 279

백준 10026번 : 적록색약 자바

🧫 문제 분석 ✔️ 출처적록색약 골드 5 📖 문제 BFS 혹은 DFS 그래프 탐색 문제이다.나는 BFS를 좋아해서 BFS로 풀었다.  적록색약은 적록색(R) 과 초록색(G)의 차이를 거의 못느낀다.따라서 둘중 하나로 통일하면 된다.   나는 문제를 잘못 이해해서적록색과 초록색의 상화좌우로 인접해 있는 부분만 차이를 못느끼는 줄 알고 문제의 난이도를 더 높여서 풀다가 자꾸 틀리고 이상해서 문제를 다시봤더니 초록색과 적록색 차이가 없다고 보는게 맞았다...(이때문에 시간을 많이 소요함) 이 풀이법도 밑에 올리겠다.  🔅 문제 풀이import java.io.*;import java.util.*;public class Main { static boolean[][] visited; static i..

백준 5430번 : AC 자바

🧫 문제 분석✔️ 출처AC 골드 5 📖 문제 문자열, 구조 문제이다.덱이 생각이 안나서 그냥 투 포인터로 풀었다..ㅎㅎㅎㅎ 문제에서 핵심은 문자열 파싱 : [1,2,3,4] 이런 식으로 입력이 주어지기에 이를 적절하게 파싱한다.R : 배열 순서 뒤집기D : 첫번째 요소 삭제빈 배열에 D를 사용할 경우 에러 발생 [1,2] 에서 DD 를 하면 [] 을 출력한다. error가 아니다.   문자열 파싱은 subString으로 앞 뒤의  ' [ ' , ' ] ' 를 짤라내고split으로 정규표현식을 사용하여 [^0-9]로 숫자가 아닌 모든 것을 기준으로 짤라 문자열 배열을 만들었고이를 int 배열에 파싱하여 저장하였다.  두 개의 포인터를 사용하여 풀었다. 자세한건 코드를 참고해주면 좋을 것 같다.  🔅 ..

baekjoon/String 2024.08.21

HackerRank - Weather Observation Station 5

🧫 문제 분석 ✔️ 출처문제 바로가기 📖 문제2개 도시 중 가장 긴 이름의 도시와 가장 짧은 이름의 도시 1개씩 출력단, 길이가 같다면 도시 이름을 알파벳 순으로 먼저된 것을 출력 Union 을 써보게 되는 귀중한 문제였다. 문제에서 2 개의 별도 쿼리를 작성해서 출력을 얻을 수 있다고 나와있기에 Union을 쓰라고 간접적으로 힌트를 줬다. 🔅 문제 풀이-- MySQL(SELECT CITY, LENGTH(CITY) AS CFROM STATIONORDER BY C, CITYLIMIT 1)UNION (SELECT CITY, LENGTH(CITY) AS CFROM STATIONORDER BY C DESC, CITYLIMIT 1)

SQL 2024.08.20

백준 번 2023번 : 신기한 소수 자바

🧫 문제 분석 ✔️ 출처신기한 소수 골드 5 📖 문제  (첫번째 수 + 두번째 수) 가 소수면 첫번째 수 * 10 + 두번째 수 를 파라미터로 넘겨 재귀로 호출한다.  백트래킹으로 풀어주면 된다. 소수 판별은 제곱근을 이용한 방법을 사용했다.  판별할 수의 제곱근을 구해서2~제곱근까지의 수로 나눠떨어지면 소수가 아니다. 자세히 말하자면 n = p*q 라 했을 때 (n > 0) p >=√n 일때p로 나누면 그 몫은 q이며q 이다.한쪽이 √N이상이고, 한쪽이 √N이하인 수의 곱이다.  4를 생각해보자p x q √N = 2      p            q1 x 4  1  ≤ √N,  4  ≥ √N 2 x 22  ≤ √N,  2  ≥ √N4 x 14  ≥ √N,  1 ≤  √N1은 소수가 아니지만 여기..

백준 14500번 : 테트로미노 자바

🧫 문제 분석 ✔️ 출처테트로미노 골드 4 📖 문제 완전탐색 + 백트래킹 문제다.  5가지중 가운데 볼록한 모양을 제외하곤상하좌우로 탐색하며 탐색한 깊이가 4이면 테트로미노가 만들어진다. 이때 각 수를 max와 비교한다.  가운데 볼록한 모양(키보드 방향키 모양) 은 현 위치에서 상하좌우 4개중 3개를 뽑아서 처리한다.  예를 들어 dx, dy 0, 1, 2 번째 인덱스를 탐색하라고 "012 " 문자열을 만들어서 저장해놓는다는 것이다. 현재 위치에서 dx, dy 만큼 더한 인덱스에 접근하면 ㅓ 모양이 나온다.  🔅 문제 풀이import java.io.*;import java.util.*;public class Main { static int[] dx = {0, 0, 1, -1}; stat..

스프링 고급편 - 쓰레드 로컬 ThreadLocal

✔️ 전 시간 필드 동기화에 대하여매번 파라미터로 TraceId를 넘기는 것은 복잡하고 어렵다. 따라서 LogTrace 인터페이스를 만들고 traceHolder를 만들어서 여기에 traceId를 보관하여 동기화 한다.하지만 동시성 이슈가 발생한다. 결론적으로는 쓰레드 로컬을 사용하면 동시성 이슈도 해결된다.   먼저 TraceId를 파라미터로 넘기지 않고 필드 동기화하는 법이다.public interface LogTrace { TraceStatus begin(String message); void end(TraceStatus status); void exception(TraceStatus status, Exception e);} @Slf4jpublic class FieldLogTrace ..

문제를 풀면서 공부

https://school.programmers.co.kr/learn/courses/30/lessons/151137 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr SELECT *FROM CAR_RENTAL_COMPANY_CARWHERE OPTIONS REGEXP '(시트.*){2,}'GROUP BY CAR_TYPEORDER BY CAR_TYPE;  REGEXP 문자열 패턴을 검색하거나 비교하는 SQL의 연산자() 그룹화로 하나의 문자열로 취급{n} n번 반복{n, }n번 이상 반복.임의 문자+앞의 문자 1번 이상 반복YEAR(), MONTH(),  HOUR(..

SQL 2024.08.18

백준 2644번 : 촌수계산 자바

🧫 문제 분석 ✔️ 출처촌수계 실버 2 📖 문제 bfs는 가중치가 같으면 항상 최단거리이다.그래프는 연결되어있기에 어디에서 시작하든지 가중치가 같다면 거리는 같다. (양방향 한정)BFS는 재귀로 구현하지 못한다. 처음에는 진입 경로가 0인 최상위 부모를 찾아서 위에서부터 DFS 탐색으로 깊이를 측정하며 x와 y를 구했다.부모와의 관계를 문자열로 저장하고 각 각 비교하면서 촌수를 따졌는데 이렇게하면 너무 오래걸리고, 이상하게 중복이 생겼다. 푸는 방향이 잘못되었던 것이다. 이 문제에서 원하는건 그래프와 넓이 탐색에 대한 개념을 잘 이해하는지를 물어보는 문제였고 나는 제대로 이해하지 못했어서 이상하게 풀이를 시작한 것이다.  잘 기억하자.   🔅 문제 풀이import java.io.*;import ja..

HTTP 상태코드

🧫 상태코드클라이언트가 보낸 요청의 처리를 응답에서 알려주는 기능1xx (Informational) : 요청이 수신되어 처리중2xx (Successful) : 요청 정상 처리3xx (Redirection) : 요청을 완료하면 추가 행동이 필요4xx (Client Error) : 클라이언트 오류 , 서버가 요청을 수행할 수 없음5xx (Server Error) : 서버오류, 서버가 정상 요청을 처리하지 못함모르는 상태코드-> 상위 상태코드로 해석해서 처리ex) 234 ? -> 2xx (Successful)로 처리✖️ 1xx -Informational-거의 사용하지 않음✅ 2xx -Successful-200 OK요청 성공201 Created요청 성공해서 새로운 리소스가 생성됨생성된 리소스는 응답의 Loca..

Back-End/HTTP 2024.08.17