본문 바로가기

Algorithms/SW Expert Academy

(30)
[Java] SW Expert Academy 2477번 문제: [모의 SW 역량테스트] 차량 정비소 (Greedy Algorithm, 탐욕 알고리즘) --- 문제 --- 2477. 차량 정비소 --- 코드 --- 손님의 정보를 담은 클래스들을 배열로 저장하고, 처음에 reception 먼저 모든 손님에 대해서 계산하고, 후에 repair 처리 순서대로 정렬 시켜준 후, 그 순서대로 repair 도 처리해주고 창구 번호들이 같은 손님 번호들을 더합니다. import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Arrays; import java.util.Scanner; public class Sw2477 { // 1. 손님의 상태를 저장할 클래스 정의 public static class Customer implements Comparable{ int num..
[Java] SW Expert Academy 1824번 문제: 혁진이의 프로그램 검증 (DFS, 깊이 우선 탐색) --- 문제 --- 1824. 혁진이의 프로그램 검증 --- 코드 --- import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; import java.io.FileInputStream; import java.io.FileNotFoundException; public class Sw1824 { // 이동 방향 : 우,좌,상,하 public static final int[][] directions = {{0,1},{0,-1},{-1,0},{1,0}}; // 당시의 상태를 저장하는 클래스 public static class Status{ int row; int col; int mem; int direc; Status(int ..
[Java] SW Expert Academy 1221번 문제: [S/W 문제해결 응용] 5일차 - GNS (Brute Forse) --- 문제 --- 숫자 체계가 우리와 다른 어느 행성이 있다. 아래는 이 행성에서 사용하는 0 ~ 9의 값을 순서대로 나타낸 것이다. "ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN" 0 ~ 9 의 값을 나타내는 단어가 섞여 있는 문자열을 받아 작은 수부터 차례로 정렬하여 출력하는 프로그램을 작성하라. 예를 들어 입력 문자열이 "TWO NIN TWO TWO FIV FOR" 일 경우 정렬한 문자열은 "TWO TWO TWO FOR FIV NIN" 이 된다. --- 코드 --- import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Sc..
[Java] SW Expert Academy 1249번 문제: [S/W 문제해결 응용] 4일차 - 보급로 (BFS, 너비우선탐색) --- 문제 --- [S/W 문제해결 응용] 4일차 - 보급로 2차 세계 대전에서 연합군과 독일군의 전투가 점점 치열해지고 있다. 전투가 진행중인 지역은 대규모 폭격과 시가전 등으로 인해 도로 곳곳이 파손된 상태이다. 그림 1(a)에서와 같이 도로들은 전투로 인해 트럭이나 탱크와 같은 차량들이 지날 갈 수 없다. 전투에서 승리하기 위해서는 기갑사단과 보급부대가 신속하게 이동하기 위한 도로가 있어야 한다. 공병대는 출발지(S) 에서 도착지(G)까지 가기 위한 도로 복구 작업을 빠른 시간 내에 수행하려고 한다. 도로가 파여진 깊이에 비례해서 복구 시간은 증가한다. 출발지에서 도착지까지 가는 경로 중에 복구 시간이 가장 짧은 경로에 대한 총 복구 시간을 구하시오. 깊이가 1이라면 복구에 드는 시간이 1이라고 ..
[Java] SW Expert Academy 2806번 문제: N-Queen(DFS, BackTracking, 백트래킹) --- 문제 --- 2806번 : N-Queen --- 코드 --- import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; public class Sw2806 { public static int[] arr; public static int sum; public static void main(String[] args) throws FileNotFoundException { System.setIn(new FileInputStream("./src/2806.txt")); Scanner sc = new Scanner(System.in); int T=sc.nextInt(); for(int test_c..
[Java] SW Expert Academy 1859번 문제: 백만 장자 프로젝트(Brute Force) --- 문제 --- 1859 번 : 백만 장자 프로젝트 --- 코드 --- import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; public class Sw1859 { public static void main(String[] args) throws FileNotFoundException { // TODO Auto-generated method stub System.setIn(new FileInputStream("./src/1859.txt")); Scanner sc = new Scanner(System.in); int T=sc.nextInt(); for(int test_case = 1; ..
[Java] SW Expert Academy 1204번 문제: [S/W 문제해결 기본] 1일차 - 최빈수 구하기 (PriorityQueue, 우선순위큐) --- 문제 --- [S/W 문제해결 기본] 1일차 - 최빈수 구하기 핵심 알고리즘 : PriorityQueue, 우선순위큐 (Max Heap) --- 코드 --- 1. 점수 input을 받으면면, 동시에 0~100개의 배열 scores에서 해당 점수 자리에 +1을 한다. 2. +1을 한 수가 저장된 max값과 같으면 ? Max heap 즉, PriorityQueue에 해당 점수를 추가 +1을 한 수가 기존 max보다 크면? 기존 PriorityQueue의 값을 모두 지우고 해당 점수를 추가 3. 이 과정을 반복하고 점수를 다 받으면 PriorityQueue에서 제일 첫 우선순위 값을 출력 (저장된 수 중에서 가장 큰 값) (단, 최빈수가 여러 개 일 때에는 가장 큰 점수를 출력하라). 라는 조건이 있기..
[Java] SW Expert Academy 2819번 문제: 격자판의 숫자 이어 붙이기 (너비우선탐색 BFS) --- 문제 --- 격자판의 숫자 이어 붙이기 --- 코드 --- 1. 격자에 숫자를 입힌다. 2. 격자의 임의의 한 자리를 시작점으로 6스텝 옮겨서 숫자를 만든다(BFS) 3. 결과를 중복되지 않게 저장하는 Set 자료 구조에 추가한다 4. 모든 격자 칸을 시작점으로 위 과정을 반복해서 마지막에 Set에 저장된 숫자 갯수를 출력한다 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.HashSet; import java.util.Scanner; public class Sw2819 { public static HashSet result; public static int[][] map; public st..

728x90
반응형