1. 문제https://www.acmicpc.net/problem/5567 2. 오답 - 양방향 매핑을 해야 한다.입력 : 322 13 2출력:0정답:2 상근이의 학번은 1번이기 때문에, 위 입력에 따르면 1번과 연결된 번호가 없으므로 결혼식에 초대되는 사람이 없어야 한다. 그러나 문제에서 (2, 1)이라면 (1, 2)도 성립한다고 나와있기 때문에, 양방향 그래프로 생성해야 한다.public class Main { static List> nodes = new ArrayList(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStrea..
1. 요구사항이 추가되었다.Robot 클래스는 이름을 가지고 있다.public class Robot { private String name; public Robot(String name) { this.name = name; } public String getName() { return name; }} main()에서 로봇의 이름에 따라 다른 값을 출력하는 로직을 가지고 있다.public class Main { public static void main(String[] args) { Robot robot = new Robot("주먹 로봇"); if(robot.getName().equals("주먹 로봇")) { ..
1. 주어진 상황String 타입의 배열이 존재하고, String[] → int[]로 변환 후에 뺄셈 수행한다.계산되는 값에는 음수가 포함될 수 없다. 2. 현재 코드str 배열에는 음수가 포함 되어있다.음수 값이 저장되어 있는지 검증하는 코드가 없다.public class Main { public static void main(String[] args) { String[] str = {"-1", "1", "3"}; int[] numbers = convertIntArray(str); int result = calculate(numbers); System.out.println(result); } private static int calcul..
블로킹 큐(Blocking Queue)는 동기화와 스레드 안전성을 보장하는 자료구조이다. 주로 멀티 스레드 환경에서 사용되며, 생산자-소비자 패턴과 같은 문제를 해결할 때 유용하다.블로킹 큐의 동작 방식블로킹 큐는 큐가 비어 있거나 가득 찼을 때, 큐에 데이터를 넣거나 빼려는 스레드가 일정 조건을 만족할 때까지 대기 상태(블로킹)에 들어간다. 이를 통해 스레드 간의 안전한 데이터 공유가 가능하다.삽입 시 대기큐가 가득 찬 경우, 데이터를 삽입하려는 스레드는 큐에 빈 공간이 생길 때까지 대기한다.다른 스레드가 큐에 데이터를 소비해서 자리가 생기면, 삽입하려는 스레드는 대기 상태에서 깨어나고 데이터를 큐에 넣을 수 있다.삭제 시 대기큐가 비어 있는 경우, 데이터를 꺼내려는 스레드는 큐에 새로운 데이터가 삽입..
TDD란?프로덕션 코드를 먼저 작성하는 것이 아닌 테스트 코드를 먼저 작성한다. RED : 테스트에 실패하는 코드를 작성한다.테스트할 프로덕션 코드가 없기 때문에 에러가 발생한다.GREEN : 테스트를 통과할 수 있도록 최소한의 코드만 작성한다.프로덕션 코드가 엉터리여도 된다. 단순히 테스트 통과만을 위한 프로덕션 코드를 작성한다.BLUE : 테스트 통과는 유지하면서 프로덕션 코드를 개선한다. TDD - REDcalculateTotalPrice()는 프로덕션에서 실제로 사용할 코드에 대한 테스트 코드를 작성한다. CafeKiosk 클래스의 calculateTotalPrice() 메서드는 아직 작성되지 않은 상태이다.@Testvoid calculateTotalPrice() { CafeKiosk ca..