https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net 📝문제 📝풀이 괄호 짝이 맞는 지 검사하는 작업에 더해서 괄호에 따른 연산을 추가로 하는 문제이다. 1. 열린 괄호인 경우 : - stack 에 push 한 뒤 임시 변수에 곱 연산을 한다. 2. 닫힌 괄호인 경우 : 2.1 이전 괄호가 짝이 맞는 열린 괄호인 경우 - 더 이상 곱 연산이 적용 되지 않는 원소이므로 최종 결과 값에 더해준다 2.2 stack의 맨 위 원소와 짝이 맞지 않거나 st..
https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 📝문제 📝풀이 단순 완전 탐색 + 구현 문제이다 주어진 map 좌표에서 높이의 범위를 받은다음 범위 내 높이를 기준 h 에서 평평해지는 조건을 전부 찾아 time과 inventory 조건을 만족할 때 마다 갱신을 시켜주면 된다. import static java.util.Arrays.*; import java.io.*; public class Main { static int[][] map; st..
https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 📝문제 📝풀이 완전탐색 문제이다 목표채널 target 까지 0~999999 사이까지 모두 탐색해서 만약 고장난 버튼이 없이 갈 수 있다면 그 채널에서 target 차이와 자릿수를 합한 결과를 반환하면 된다 import static java.util.Arrays.*; import static java.util.stream.Collectors.*; import java.util.*; ..
https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 📝문제 📝풀이 테트리스 블록을 암거나 하나 놓았을 때 그 블록이 위치한 격자 점수 합의 최대값을 구하는 문제이다. 어느 한 점 x,y 에서 시작해서 깊이 우선탐색 DFS를 돌리면 블록 모양이 나온다. 그런데 T 블록은 DFS로 구할 수 없으니 , 그 구간만 BFS로 구해야한다. BFS를 진행할 때 만약 4방향 모두 진행 할 수 있다면 중심좌표 x,y 의 값 + (4방향 좌표의 합) = sum 이라..
https://www.acmicpc.net/problem/1800 1800번: 인터넷 설치 첫 번째 줄에 N(1 ≤ N ≤ 1,000), 케이블선의 개수 P(1 ≤ P ≤ 10,000), 공짜로 제공하는 케이블선의 개수 K(0 ≤ K < N)이 주어진다. 다음 P개의 줄에는 케이블이 연결하는 두 컴퓨터 번호와 그 가격이 차 www.acmicpc.net 📝문제 📝풀이 처음 풀어보는 유형의 문제다. 아이디어를 못 떠올려서 도움을 받았다.. 만약 1-3-2-5 이런식으로 연결 된다고 치면 각각 edge들에 대하여 가중치들은 4, 3, 9 원이다. 여기서 k=1, 회선 하나는 공짜로 준다고 했으니 제일 비싼 9원을 빼면 남은건 4, 3 인데 이들 중 제일 비싼 회선 값만 return 하므로 ans=4 이 답이다..
https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 📝문제 📝풀이 명령어 길이는 같으니 맨 위의 명령어를 대표로 잡고 세로로 비교 만약 다른 문자가 있으면 '?' 으로 치환, 그렇지 않으면 그 문자 그대로 쓰기 import static java.util.Arrays.*; import static java.util.stream.Collectors.*; import java.util.*; import java.io.*; import java.ut..
JPA로 작성되었던 기존 CustomRepository Interface를 상속받은 RepositoryImpl을 QueryDsl 로 복잡한 쿼리를 해결하고 V2로 넘어가는 과정에서 문제가 발생하였다. 기존 OrderRepositoryImpl를 남기고 싶어서 v1,v2 따로 나누기위해 Class 이름 뒤에 v1을 남기고 QueryDsl로 작성한 Repository의 뒤에 v2로 작성하여 돌렸더니 .. 두 시간 삽질을 했다 .. 쿼리가 잘 못 됬는지 확인해보고, 애노테이션도 확인해보고 삽질이란 삽질은 다 했다가 Repository 자체가 문제란걸 깨닫고 CustomRepository 규칙을 다시 보았다. 기본 Impl으로 설정되어있는 접미사가 있어야 있어야 Bean을 만드는 규칙이 있었다. 그리고 리플렉션 ..