전체 글

문제 (Gold 5) https://www.acmicpc.net/problem/2174 2174번: 로봇 시뮬레이션 첫째 줄에 두 정수 A, B가 주어진다. 다음 줄에는 두 정수 N, M이 주어진다. 다음 N개의 줄에는 각 로봇의 초기 위치(x, y좌표 순) 및 방향이 주어진다. 다음 M개의 줄에는 각 명령이 명령을 내리는 순 www.acmicpc.net 풀이 좌표계만 신경쓰면 어렵지 않았던 문제! 나의 경우, 좌상단부터 (0,0) 우하단이(B-1,A-1)가 되도록 좌표를 설정하였다. 여기서 주의해야 할 점은! 입력 또한 x축 좌표부터 입력되므로 바로 [x][y]이렇게 저장하면 오류가 난다. 모든 코드에서 A, B, X, Y, I, J에 헷갈리지 않도록 유의하자! 코드 더보기 package simulat..
문제 (Silver 1) https://www.acmicpc.net/problem/16918 16918번: 봄버맨 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc.net 풀이 시뮬레이션은 차례대로만 구현하자! 설치 후, 1초 후엔 아무런 변화 없으므로 초기 상태 설정 시 1초 후의 상태로 바로 설정 2초 후부터 N초 후까지의 로직을 구현 for(int i = 1 ; i < N ; i++) == for(int i = 2 ; i
문제 (Gold 1) https://www.acmicpc.net/problem/16639 16639번: 괄호 추가하기 3 첫째 줄에 수식의 길이 N(1 ≤ N ≤ 19)가 주어진다. 둘째 줄에는 수식이 주어진다. 수식에 포함된 정수는 모두 0보다 크거나 같고, 9보다 작거나 같다. 문자열은 정수로 시작하고, 연산자와 정수가 www.acmicpc.net 풀이 숫자와 연산자를 한번에 저장할 수 있는 Expression 클래스 생성 -> 숫자를 char로 한번에 저장했더니, 9 이상의 숫자는 제대로 작동하지 않음 ㅠㅠ 연산 리스트에서 숫자가 나오는 짝수 인덱스를 돌며 연산 수행 후, 남은 연산 리스트를 재귀 돌림 기저조건: 리스트에 원소 하나만 남아있을 때 ( == 숫자 하나가 남아있을 때 ) 짝수 idx( ..
문제 (Gold 4) https://www.acmicpc.net/problem/14466 14466번: 소가 길을 건너간 이유 6 첫 줄에 N, K, R이 주어진다. 다음 R줄에는 한 줄에 하나씩 길이 주어진다. 길은 상하좌우로 인접한 두 목초지를 잇고, r c r′ c′의 형태 (행, 열, 행, 열)로 주어진다. 각 수는 1 이상 N 이하이다. www.acmicpc.net 풀이 문제 해석 1. 일반 목초지 사이는 상하좌우 모두 움직일 수 있다. 2. 중간에 다리가 있다면, 다리를 꼭 건너야 한다. 즉, 소(2,2)는 소(2,3)까지 다리를 건너야할 수도 있지만, 그 길을 회피해 회색 화살표 길로 갈 수 있다. 소(3,3)은 다른 목초지에 가려면 무조건 다리를 건너야 하므로, 모든 소와 유효한 쌍이 된다..
상황 Service UnitTest 중 발생 원인 @Before 에서 실행되는 아래 Stubbing이 쓰이지 않은 메소드가 있었다. given(userRepository.findByEmail(userEmail)).willReturn(Optional.of(user)); 해결 @Before 어노테이션을 제거하고, 필요한 메소드에서 호출하는 방식으로 변경!
Unit Test ? 단위 테스트는 Service Layer의 비즈니스 로직만을 검증하는 것이므로, Repository와 Controller의 영향을 받지 않는 환경에서 테스트를 진행하여야 한다. 테스트의 F.I.R.S.T 원칙 F - Fast: 테스트를 시도하는 것에 있어서 주춤되지 않을 만큼 빨라야 한다. I - Independent: 객체의 상태, 메소드, 이전 테스트 상태, 다른 메소드의 결과에 의존해서는 안된다. R - Repeatable: 어떤 환경에서도 같은 결과가 나올 수 있도록 반복 가능해야 한다. S - Self-Validating: 모든 테스트는 pass 혹은 fail의 결과만 가지고 있어야 한다. T - Timely: 실제 코드가 만들어지기 전에 테스트 되어야 한다. 실제 코드를 구..
점이
DOTELOPER