java 5

[SWEA] 1767 프로세서 연결하기 / JAVA

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4suNtaXFEDFAUf SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [제약 사항] 1. 7 ≤ N ≤ 12 2. Core의 개수는 최소 1개 이상 12개 이하이다. 3. 최대한 많은 Core에 전원을 연결해도, 전원이 연결되지 않는 Core가 존재할 수 있다. [입력] 입력의 가장 첫 줄에는 총 테스트 케이스의 개수 T가 주어지며 그 다음 줄부터 각 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 줄에는 N값이 주어지며, 다음 N줄에 걸쳐서 멕시노스의 초기 ..

알고리즘/SWEA 2023.07.27

[SWEA] 1248 공통 조상 D5 / JAVA

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15PTkqAPYCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [입력] 가장 첫 번째 줄에 테스트케이스의 수가 주어진다. 각 케이스의 첫 번째 줄에는 정점의 개수 V(10 ≤ V ≤ 10000)와 간선의 개수 E, 공통 조상을 찾는 두 개의 정점 번호가 주어진다. 각 케이스의 두 번째 줄에는 E개 간선이 나열된다. 간선은 항상 “부모 자식” 순서로 표기된다. 위에서 예로 든 트리에서 정점 5와 8을 잇는 간선은 “5 8”로 표기된다. 정점의 번호는 1부터..

알고리즘/SWEA 2023.07.25

[JAVA] 이중 연결 리스트 (Doubly Linked List) 구현

이중 연결 리스트? 각 노드에서 양방향(선행, 후행)으로 연결되는 리스트 양 방향 접근이 용이 BUT 메모리를 추가적으로 사용 구현해 볼 메서드는? 1. 초기화 2. 리스트 맨 앞에 데이터 삽입하기 3. 리스트 맨 끝에 데이터 삽입하기 4. 리스트 중간에 원하는 자리에 데이터 삽입하기 5. 리스트에서 지우고 싶은 데이터 삭제하기 6. 리스트에서 값으로 조회해서 인덱스 번호 넘기기 7. 리스트 찾기 8. 역으로 리스트 찾기 1. 초기화 public void init() { head = null; tail = null; nodeCnt = 0; } 이렇게 초기화 시켜두면 더미 노드로 처음 값을 넣을 때 값이 있나 없나 확인하고 하는 과정이 줄어든다. 2. 리스트 맨 앞에 데이터 삽입하기 public void ..

[JAVA] 단순 연결 리스트 (Singly Linked List) 구현

단순 연결리스트? 각 노드에서 단방향으로 연결되는 리스트 후행 노드로는 쉽게 접근 가능 BUT 선행 노드 접근이 복잡한 단점 존재 구현해 볼 메서드는? 1. 초기화 2. 리스트 맨 앞에 데이터 삽입하기 3. 리스트 맨 끝에 데이터 삽입하기 4. 리스트 중간에 원하는 자리에 데이터 삽입하기 5. 리스트에서 지우고 싶은 데이터 삭제하기 6. 리스트에서 인덱스 번호를 받아서 데이터 찾기 구현 구현은 정적 할당을 통한 메모리 풀 방식으로 구현할 것입니다. 당연히 평소엔 동적 할당을 통해서 사용해야겠지만 알고리즘 문제를 풀 때는 동적 할당을 하면 성능 문제로 정적으로 할당합니다. => 모든 노드가 메모리 상에서 뭉쳐 있어 캐시 효율 증가 0. 노드 생성 public Node getNode(int data) { n..

[SWEA] 3316 동아리실 관리하기 D4 / JAVA

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWBnFuhqxE8DFAWr SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [입력] 첫 번째 줄에 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스마다 길이 10,000 이하인 하나의 문자열이 주어진다. 이 문자열은 A, B, C, D로 이루어져 있으며, i번째 문자는 i번째 날의 책임자가 누구인지를 나타낸다. [출력] 각 테스트 케이스마다 N일 동안의 동아리 활동을 할 수 있는 경우의 수를 출력하는 프로그램을 작성하라. 이 수는 너무 커질 수 있으므로 1,000,00..

알고리즘/SWEA 2023.07.19