![[백준 14500 / Java] 테트로미노 - DFS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FclAwAW%2Fbtsmzc5Ybha%2FAAAAAAAAAAAAAAAAAAAAAK2FVeB3F0wSuKJHwNo22uMfs41xq7M0ZGhMuQh663t8%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Dcq8KijKf8TGko9P2HsePUCyXXWY%253D)
난이도Gold 4 문제 링크https://www.acmicpc.net/problem/14500 14500번: 테트로미노폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변www.acmicpc.net 풀이DFS로 풀이하였으며 'ㅗ' 모양을 단순 DFS로 구현할 수 없어서 따로 메서드화 했지만 DFS 내부에서 cnt = 3일 때 조건을 주어 처리할 수도 있다. 원하는 방식대로 풀면 된다. 메서드 이름이 마땅히 생각나지않아 fuck로 지었...import java.io.BufferedReader; import java.io.IOException; import java.io...
![[백준 9019번 / Java] DSLR - BFS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FxAiLA%2FbtsmsSe26b2%2FAAAAAAAAAAAAAAAAAAAAAATRozqlBw_zcKwAY47Q5C1r0_f15jyL1oAYPhpU5mAE%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DrtavfLz5P%252BdvHz3laQqIPfa%252BWS4%253D)
문제 링크 https://www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 풀이 엄청난 삽질을 했던 문제 한번에 풀겠거니 했는데 처음에는 메모리 초과가 발생했는데, 이유는 아마 String 배열 하나로 풀었기 때문인 것 같다. 어떻게 boolean 배열 없이 단순 String 배열로만 풀어보자 하고 고집하다가 계속 오답을 발생시켰다. 추가로, l과 r을 계산하는 조건을 구할 때, 처음에 String으로 받아서 charAt로 풀었기 때문에 메모리가 ..
![[백준 7576번 / Java] 토마토 - BFS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FkCtQJ%2FbtsmszmwKoa%2FAAAAAAAAAAAAAAAAAAAAAMUSvo-S6aUVbmzmrE4VZmYD9vWI-LNTCpzQEID9hk9O%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D%252B%252FTv9zYECVNRvdgAY881pPpEw0w%253D)
문제 링크 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 풀이 BFS를 이용한 단순한 풀이였지만, 정답을 맞춘 뒤 맘에 들지않는 부분을 수정하였다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java..
![[백준 1107번 / Java] 리모컨 - Brute Force(DFS)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FeaMhm0%2FbtsmkIYmuEl%2FAAAAAAAAAAAAAAAAAAAAAP00g8lDt1rEIdXu8LoGfNJFGLPD2HwEK-a4kNSwpOG-%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DunG%252FFOwYPsTFWTFflhNcuUliq3E%253D)
문제 링크 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 풀이 1. 500,000까지의 채널이 존재했고, 가장 큰 경우가 999,999의 경우를 고려하여 반복문의 최대 길이를 설정 2. answer는 단순 +,-로 해당 채널로 이동하는 경우, 버튼을 눌리는 횟수 3. length는 해당 버튼의 길이. 즉 해당 채널로 이동하기 위한 버튼을 눌리는 횟수 4. 모든 경우의 수에서 최소값을 구함 import java.io.Buffer..

서론 본 포스팅은 아래의 인강을 듣고, 추가 공부가 필요한 내용들을 포함하여 정리한 포스팅입니다. Practical Testing: 실용적인 테스트 가이드 - 인프런 | 강의 이 강의를 통해 실무에서 개발하는 방식 그대로, 깔끔하고 명료한 테스트 코드를 작성할 수 있게 됩니다. 테스트 코드가 왜 필요한지, 좋은 테스트 코드란 무엇인지 궁금하신 모든 분을 위한 강 www.inflearn.com 인강을 쭉 따라가다보니 어느새 Business Layer Test를 진행중이다. 해당 테스트에는, 주문을 생성하는 두 개의 테스트 메서드가 있고. 각각 red, green, refactor 과정을 거쳐 테스트를 수행했다. 하지만 위 사진처럼, 두 메서드를 통합하여 테스트 할 경우 테스트 에러가 발생하게 되었고 강의에..

Architecture - 아키텍쳐 아키텍쳐란 목표하는 대상에 대하여 그 구성과 동작원리, 구성 요소 간의 관계 및 시스템 외부 환경과의 관계 등을 설명하는 설계도 혹은 청사진을 말한다. 시스템에서의 아키텍쳐는 시스템의 구조, 행위, 더 많은 뷰를 정의하는 개념적 모형으로 시스템 목적을 달성하기 위해 시스템의 각 컴포넌트가 무엇이며 어떻게 상호작용하는지, 정보가 어떻게 교환되는지를 설명한다. Layerd Architecture 소프트웨어 시스템의 구성요소 간의 관심사 분리(관심사 별로 계층화)한 아키텍처로, 특정 계층 내의 구성 요소는 해당 계층과 관련된 논리만 처리한다. 관심사 분리를 통해 계층의 응집도를 높이고 결합도를 낮출 수 있으며 이를 통한 재사용성과 유지보수의 향상을 기대할 수 있다. 서비스의..
![[백준 11724번 / Java] 연결 요소의 개수](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FG7bCM%2FbtslZTz7dF4%2FAAAAAAAAAAAAAAAAAAAAAO0vLS_OqLzTJxTJRYcJxQNihpDxUmQ9hOQw_rIFVjC-%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D%252BK5SOSnjmCX1Ccj6nRYboDKIO3I%253D)
문제 링크 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어 www.acmicpc.net 풀이 DFS로 접근했고 딱히 설명할 부분은 없는 것 같다. 굳이 하자면, 연결 요소를 구하는 문제이기 때문에 chk변수를 둬서, 방문하지 않은 곳에 첫 방문 시를 새로운 연결 요소가 있는 경우로 두고 풀었음. import java.io.BufferedReader; import java.io.IOException; impor..
![[백준 2606번 / Java] 바이러스](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FblaJn9%2FbtslLE36Vz4%2FAAAAAAAAAAAAAAAAAAAAAFgddx8qC6kXwfpzRJWyEp3XJ1YPn4i87rxSfaso_hM8%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D%252FWrQMrovtTWtaj9eLJ4pmc%252FTK8Q%253D)
문제 링크 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 풀이 DFS, BFS 둘 다 가능했지만, BFS에 조금 미숙하여 BFS로 진행하였다. 난이도가 쉬운 문제라 (실버 3?) 구현에 어려움은 없었다. 1에서 시작하여, chk와 연결되어있는 노드들의 방문여부를 체크하여 미방문 시 cnt++ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea..