본문 바로가기

Algorithm/소프티어8

[Softeer] 바이러스 - JAVA 바이러스 문제 바로가기 풀이 음.. 값이 21억을 초과할 수 있으니 Long 타입으로 받으면 된다. 그 외에는 딱히 설명이 필요 없을 것 같다. import java.util.*; import java.io.*; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); long K = Long.parseLong(st.nextToken()); long P = Long.parseLong(st... 2023. 8. 3.
[Softeer] GBC - JAVA GBC 문제 바로가기 풀이 구현 문제이다. 엘리베이터의 속도를 계산해서 테스트 중일때 제한속도를 초과할 경우 가장 큰 값을 구해주면 된다. 크게 3가지 경우가 있다. 1. 제한속도 체크 구간의 길이가 테스트 구간 길이보다 작을경우 2. 제한속도 체크 구간의 길이가 테스트 구간 길이보다 클 경우 3. 두 개가 같을경우 위에 경우의수에 알맞은 구현을 해주면 된다. import java.util.*; import java.io.*; import java.util.stream.IntStream; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new .. 2023. 8. 3.
[Softeer] 회의실 예약 - JAVA 회의실 예약 문제 바로가기 풀이 소프티어 lv2 문제중엔 가장 어려운듯?.. 로직자체는 간단하지만, 구현이 꽤 복잡하다. 먼저 2개의 컬렉션이 사용한다. 1. mettingRoomList -> 단순히 회의실의 이름을 저장하는 리스트 2. reservationManageMap * Key: 회의실 이름 * Value : 예약한 시간을 나타내는 boolean 배열 map에 저장을 할때는 회의 시작 시간부터 회의 종료 시간까지 순회하며 값을 true로 바꿔줬다. (종료시간은 포함하지 않는다. 문제에도 나와있지만, 종료시간과 시작시간은 겹칠 수 있기 때문이다.) 그후 회의실 이름을 정렬 후 map에서 순회하며 StringBuilder에 값을 넣어주면되는데, 이 과정이 좀 복잡했다... 나머지는 아래 코드 참조.... 2023. 8. 3.
[Softeer] 비밀 메뉴 - JAVA 비밀 메뉴 문제 바로가기 풀이 int 배열로 풀면 구현하기가 귀찮아져서 String으로 받아 푸는게 편하다. String 으로 2개의 문자열을 받아 공백 제거 후 사용자가 클릭했던 버튼에 비밀코드가 포함되어 있는지만 체크해주면 된다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br.readLine(); String target = br.readLine().replace(" ", ""); String click.. 2023. 8. 3.
[Softeer] 지도 자동 구축 - JAVA 지도 자동 구축 문제 바로가기 풀이 규칙을 찾으면 되는 수학(?) 문제이다. 정사각형의 각 변의 중앙에 점을 하나 추가한다. 라는 문장을 보아 N이 증가할때마다 한줄에 점의 개수는 dot - 1 + dot 라는걸 추측할 수 있다. 이걸 코드에 적용시켜주면 된다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int dot = 2; while.. 2023. 8. 3.
[Softeer] 장애물 인식 프로그램 - JAVA 장애물 인식 프로그램 문제 바로가기 풀이 전형적인 탐색문제이다. DFS, BFS 원하는 방식으로 풀면 될 것 같다. 전체를 한번씩 순회하해야 되니까 중복 방문 방지를 위한 방문체크(visited) 가 필요하고, 순회할때마다 카운팅을 해서 마지막에 오름차순 후 출력해주면 된다. import java.util.*; import java.io.*; import java.util.stream.IntStream; public class Main { private static int N; private static int[][] arr; private static boolean[][] visited; private static List hurdleAreaCountList = new ArrayList(); priva.. 2023. 8. 2.