코딩테스트/SWEA23 [SWEA] 4013 특이한 자석 - JAVA 1. 문제 BOJ 14891 톱니바퀴와 동일하다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴가 1번, 그 오른쪽은 2번, 그 오른쪽은 3번, 가장 오른쪽 톱니바퀴는 .. 코딩테스트/SWEA 2022. 4. 14. [SWEA] 1953 탈주범 검거 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 풀이 입력 테스트케이스와 무관하게 항상 필요한 변수들이다. 메인에 저장했다. int[][] deltas 상하좌우 다음 이동 위치 int[][] pipe 파이프 타입 별 움직일 수 있는 deltas 인덱스 int[][] connect 방향 별 이을 수 있는 pipe 인덱스 Queue queue bfs에 사용할 queue BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; StringBuilder sb = new StringBuilder.. 코딩테스트/SWEA 2022. 4. 7. [SWEA] 1249 보급로 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 풀이 입력 테스트케이스와 무관하게 항상 필요한 변수들이다. 메인 안에 만들었다. BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int T = Integer.parseInt(in.readLine()); PriorityQueue pQueue = new PriorityQueue((o1,o2)->o1[2]-o2[2]); int[][] deltas = {{1,0},{-1,0},{0,1},{0,-1}};.. 코딩테스트/SWEA 2022. 4. 7. [SWEA] 5643 키 순서 - JAVA 1. 문제 BOJ 2458 키 순서와 동일한 문제다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2458번: 키 순서 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 www.acmicpc.net 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 6번만 키를 비교하였고, 그 결과가 다음과 같다고 하자. 1번 학생의 키 <.. 코딩테스트/SWEA 2022. 4. 7. [SWEA] 1263 사람 네트워크 2 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 풀이 사람 수만큼 BFS 탐색하고 그 최솟값을 출력했다. import java.io.*; import java.util.*; public class D6_1263_사람네트워크2 { public static void main(String[] args) throws IOException { BufferedReader in =new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); StringTokenizer st; int T = Integer.. 코딩테스트/SWEA 2022. 4. 5. [SWEA] 3124 최소 스패닝 트리 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 풀이 result type==> long이다. 타입체크를 잊지 말아야 한다. 최소 간선 순으로 합집합하되 싸이클이 생긴다면(find(a)==find(b)) 추가하지 않고 다음 간선으로 넘어간다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class D4_3124_최소스패닝트리 { static int.. 코딩테스트/SWEA 2022. 3. 31. [SWEA] 1251 하나로 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 환경 부담금 = 환경 부담 세율(E)과 각 해저터널 길이(L)의 제곱의 곱(E * L^2) 총 환경 부담금을 최소로 지불하며, N개의 모든 섬을 연결할 수 있는 교통 시스템을 설계하시오. 2. 풀이 Connect 클래스 인덱스와 길이의 타입이 달라서 클래스를 만들어주었다. 만든 김에 Comparable 클래스를 상속받아서 PriorityQueue에 써먹었다. static class Connect implements Comparable { int idx; long length; private Connect(int idx, long length) { thi.. 코딩테스트/SWEA 2022. 3. 1. [SWEA] 7465 창용 마을 무리의 개수 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 창용 마을에는 N명의 사람이 살고 있다. 사람은 편의상 1번부터 N번 사람까지 번호가 붙어져 있다고 가정한다. 두 사람은 서로를 알고 있는 관계일 수 있고, 아닐 수 있다. 두 사람이 서로 아는 관계이거나 몇 사람을 거쳐서 알 수 있는 관계라면, 이러한 사람들을 모두 다 묶어서 하나의 무리라고 한다. 창용 마을에 몇 개의 무리가 존재하는지 계산하는 프로그램을 작성하라. 2. 풀이 import java.io.*; import java.util.*; public class D4_7465_창용마을무리의개수X { static int[] people, size;.. 코딩테스트/SWEA 2022. 2. 23. [SWEA] 3289 서로소집합 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 초기에 {1}, {2}, ... {n} 이 각각 n개의 집합을 이루고 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 a가 포함되어 있는 집합과, b가 포함되어 있는 집합을 합친다는 의미이다. 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산은 1 a b의 형태로 입력이 주어진다. 이는 a와 b가 같은 집합에 포함되어 있는지를 확인하는 연산이다. a와 b는 n 이하의 자연수이며 같을 수도 있다. 2. 풀이 import java.io.*; i.. 코딩테스트/SWEA 2022. 2. 23. [SWEA] 1238 Contact - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 처음에 연락한 사람이 주어지고, BFS식으로 점점 퍼져나가며 연락을 받는다. 마지막에 동시에 연락받은 사람 중 가장 큰 숫자를 가진 사람을 출력하면 된다. [제약 사항] 연락 인원은 최대 100명이며, 부여될 수 있는 번호는 1이상, 100이하이다. 단, 예시에서 5번이 존재하지 않듯이 중간 중간에 비어있는 번호가 있을 수 있다. 한 명의 사람이 다수의 사람에게 연락이 가능한 경우 항상 다자 간 통화를 통해 동시에 전달한다. 연락이 퍼지는 속도는 항상 일정하다 (전화를 받은 사람이 다음사람에게 전화를 거는 속도는 동일). 비상연락망 정보는 사전에 공유되.. 코딩테스트/SWEA 2022. 2. 22. [SWEA] 1247 최적경로 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 김대리는 회사에서 출발하여 냉장고 배달을 위해 N명의 고객을 방문하고 자신의 집에 돌아가려한다. 회사와 집의 위치, 그리고 각 고객의 위치는 이차원 정수 좌표 (x, y)로 주어지고 (0 ≤ x ≤ 100, 0 ≤ y ≤ 100) 두 위치 (x1, y1)와 (x2, y2) 사이의 거리는 |x1-x2| + |y1-y2|으로 계산된다. 회사의 좌표, 집의 좌표, 고객들의 좌표는 모두 다르다. 회사에서 출발하여 N명의 고객을 모두 방문하고 집으로 돌아오는 경로 중 가장 짧은 것을 찾으려 한다. 회사와 집의 좌표가 주어지고, 2명에서 10명 사이의 고객 좌표가.. 코딩테스트/SWEA 2022. 2. 20. [SWEA] 3234 준환이의 양팔저울 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 무게 추를 올릴 때 오른쪽 위에 올라가 있는 무게의 총합이 왼쪽에 올라가 있는 무게의 총합보다 더 커져서는 안 된다. 준환이가 양팔 저울에 모든 무게추를 올리는 방법은 총 몇 가지가 있을까? 2. 풀이 왼쪽 저울에 올라갈 순열을 찾는다. cnt==N이면 다 찾은 경우이므로 result에 1을 더한다. 경우의 수를 찾다가 중간에 이미 left가 나머지+right보다 더 크면 그 뒤의 경우의 수((N-cnt)! * 2^(N-cnt))를 전부 더해주고 끝낸다. 0부터 N-1 중에 이미 뽑은 추는 제외하고 나머지를 오른쪽, 왼쪽으로 저울에 올린다. (재귀호출).. 코딩테스트/SWEA 2022. 2. 20. 이전 1 2 다음