전체 글

은탄이 아닌 레포지토리
https://programmers.co.kr/learn/courses/30/lessons/92343 코딩테스트 연습 - 양과 늑대 [0,0,1,1,1,0,1,0,1,0,1,1] [[0,1],[1,2],[1,4],[0,8],[8,7],[9,10],[9,11],[4,3],[6,5],[4,6],[8,9]] 5 [0,1,0,1,1,0,1,0,0,1,0] [[0,1],[0,2],[1,3],[1,4],[2,5],[2,6],[3,7],[4,8],[6,9],[9,10]] 5 programmers.co.kr [문제] [풀이] 처음엔 트리 DP 문제인줄 알고 접근했었다가 다시 돌아올 수 있다는 조건때문에 풀지 못했었다. 이 문제는 오히려 중복체크를 하지 않아도 되기때문에 그리디+탐색으로 충분히 풀 수 있었다. 1. 탐색..
https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr [문제] [풀이] 입력이 IN 이면 주차를 시켜야하고 OUT이면 출차시키고 주차된 시간을 누적시킨다음 요금을 계산해야한다. 현재 주차 상태를 나타내는 HashMap 총 시간누적을 나타내..
https://programmers.co.kr/learn/courses/30/lessons/92335 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr [문제] [풀이] 1. 진수 변환하기 2. "0"을 기준으로 나누기 3. 소수 판별해서 카운트하기 이렇게 진행하면 쉽게 풀리는 문제이다. 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 31 import java.u..
https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr [문제] [풀이] 신고기준 횟수k 를 넘어 신고를 당한사람을 블랙처리하고 그 결과를 신고한 사람에게 배열형태로 알려주는 문제이다. 우선 Map를 사용함으로써 의 형태로 상황을 유지시킨다. 같은사람이 여러번 신고한 경우를 필터링하기위해 key를 신고당한사람, value를 HashSet으로 함으로써 중복을 기본적으로 걸러낸다. HashMap은 기본적으로 데이..
https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net [문제] [풀이] 주어진 배열과 명령을 가지고 결과값을 출력 해내는 문제이다. n의 합이 70만개 이므로 R 연산이 들어올 때 마다 reverse 연산을 시행하면 시간초과가 발생한다. reverse 연산을 마지막에 출력할 때만 하기위해 R연산이 들어오면 뒤집는 대신 , direction 이라는 방향상태를 나타내는 상태 변수 하나를 정해두고 양 방향에서 접근할 수 있게 list 대신 deque를 사용한다. 이번엔 뭔가 더 객체지향스럽게 풀어내기위해 Arr..
https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr . [문제] [풀이] 낮은 스코빌 지수의 음식 2개를 뽑아서 새로운 음식을 만드는데 스코빌 지수가 K 보다 높을 떄 까지 반복한다. 계속 해서 낮은 수치의 값이 필요하므로 우선순위큐를 사용. 음식을 섞으려면 2개를 뽑아야 하는데 2개가 없다면 -1 를 리턴 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2..
·Backend/Spring
스프링 AOP에 대해 정리를 해보고자 한다. 1. AOP 개념? AOP란 Apsects Oriented Programming 으로, 관점 지향 프로그래밍의 약자이다. 어플리케이션은 로직은 크게 핵심기능과 부가 기능으로 나눌 수 있다. 실제 요청을 받아 들이고 처리하는 로직을 핵심기능이라고 하고 핵심 기능을 보조하여 가령 로그를 남겨주는 로직을 부가 기능이라고 한다. 가령 , 주문에 대한 로직이 있다고 가정하자. 그리고 각 컴포넌트에서 로그를 남겨주는 코드를 적용해야한다면 다음과 같이 각 컴포넌트에 로그를 일일이 남겨주는 로직을 핵심기능안에 넣어야 한다. 그런데 로그찍는 방법이 달라졌는데 컴포넌트가 100개가 넘는다면 ..? => 100개가 넘는 로직를 뜯어고쳐야한다. 로그추적과 같은 공통관심사를 핵심기능..
https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net [문제] [풀이] 스도쿠 요약 : 가로줄, 세로줄, 부분 정사각형 모두 1~9까지 숫자가 한번씩만 있어야 함. 백트래킹으로 접근해야한다 빈칸에 숫자하나 넣어보고 아니면 되돌아가서 다른숫자선택하고 ... 반복 1. 빈칸은 0으로 하므로 0인 좌표들을 List에 add 2. List를 순회하면서 DFS 시작. 3. 해당 좌표에 1~9 까지 숫자가 들어갈 수 있는지 확인. 4. DFS 의 depth가 ..
김까따
kimkata's Devlog