전체 글 172

[소프티어] 함께하는 효도 레벨3 자바 풀이

https://softeer.ai/practice/7727 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai  DFS의 기초를 다지다가 마주친 DFS 응용 문제 너란 녀석 엄청 강하구나. 하지만 너를 정복하겠다. 해결 전략이 문제를 해결하기 위해 DFS와 백트래킹을 사용하여 모든 가능한 경로를 탐색하여 최대 수확량을 구한다.처음 입력받는 위치와 값은 초기값으로 저장을 해둔다.현재 위치에서 상하좌우로 비교해 가며 최대 수확량을 구하고 다음 친구가 턴을 이어 받아 (전에 있던 최대 수확량 + 현재 최대 수확량)으로 최대값을 구한다. 이를 계속 반복하면서 진정으로 최대값을 구한다.각각 케이스에 3초의 시간이 있는데 3초가 끝날때 다음 친구에게 턴을 이어주기 위해 fCnt 를 사용해 현재 탐..

[소프티어] 비밀 메뉴 레벨2 (21년 재직자 대회 예선)

https://softeer.ai/practice/6269 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai   해당 문제는 어렵게 생각할 필요가 없는 문제다. 조건을 조금 걸어준 나열해 놓은 1,2,3,4 라는 리스트에서 1,2,3 이라는 비밀 순서가 들어있는지만 체크 해주면 끝!  정답 코드import java.io.*;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); B..

[소프티어] 회의실 예약 레벨2 자바 풀이 (21년 재직자 대회 예선)

https://softeer.ai/practice/6266 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai  꽤 오랜시간 풀었던 문제였다. 너무 헷갈려서 엄두가 잘 나지 않았다.회의실 클래스를 만들었다.해당 속성으로는 아래와 같다.회의실 이름예약 현황 list[18] (9-18 저장용 앞에 인덱스는 많지 않으니 버리는 전략)회의실 클래스를 저장하는 리스트에 각각 담는다. 문제에 맞게 저장하고 핵심은 다음과 같다. 회의실을 저장해주는 리스트 반복을 한다.각 회의실 마다 가용슬롯을 String 리스트 선언예약 현황에 저장해둔 list[18]을 9-18 만큼 반복회의실 예약이 false 이고 start 시점이 잡혀 있지 않다면 start 시점 저장회의실 예약이 true 이고 start 시..

[소프티어] GBC 레벨2 자바 풀이

https://softeer.ai/practice/6270 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai   현대 스러운 문제를 냈다. 글로벌 비즈니스 센터(GBC, Global Business Center)는 현대자동차그룹 통합 사옥에서 구간중 제한 속도 벗어나는것중 가장 큰것을 찾는 것이다.정해진 구간과 제한 속도를 주고 검사하는 구간과 속도를 준다.처음에 접근 했을땐 반복을 일일이 돌아야 하나 싶었지만 제한 속도 검사, 구간 실태 조사를 해서 i, j를 적절하게 움직여주면 될 것이라는 검증을 마치고 바로 코드를 쳤다.정답 코드import java.io.*;import java.util.*;public class Main { private static int[] nLeng..

[소프티어] 지도 자동 구축 레벨2 자바 풀이

https://softeer.ai/practice/6280 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai   정사각형을 이루는 점 4점이 존재 하는데 가운데에 각 정사각형안에 점을 찍고 늘려가는 문제이다.!총 단계별로 거쳐서 생긴 점은 몇개인가?진짜 간단한 문제인데.. 그림을 잘 못그려서 계속 이상한 식이 나와서 점화식을 세울수가없었다.여기서 핵심은 정사각형이기때문에 단계 별로 늘어가는 한 변의 크기를 보면 점화식을 세울수 있다.n1234한 변의 크기35917점의 개수92581289한변의 크기는 (2^n - 1)점의 개수는 넓이를 구하는 끝나는 문제정답 코드import java.io.*;public class Main { private static int N; priva..

[소프티어] 장애물 인식 프로그램 레벨2 자바 풀이 (DFS, BFS)

https://softeer.ai/practice/6282 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai   딱 문제를 보자마자 떠오른것은 DFS정답 코드import java.io.*;import java.util.ArrayList;import java.util.Collections;public class Main { private static int n; private static int blockCount; private static int[][] map; private static int[][] visited; private static int[] dy = {-1, 1, 0, 0}; private static int[] dx = {0, 0, -..

[소프티어] 바이러스 레벨2 자바 풀이

https://softeer.ai/practice/6284 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai    바이러스 문제는 수학 계산 문제이다. K * P^N 만 계산하면 된다.처음에 간단한 문제라고 생각하고 풀었다가 계속 실패가 나왔다. 틀린 코드import java.io.*;import java.util.StringTokenizer;public class Main { private static int K; private static int P; private static int N; private static double dap = 0; public static void main(String[] args) throws IOException { ..

[소프티어] 금고털이 레벨2 자바 풀이

https://softeer.ai/practice/6288 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai    처음에는 재귀로 풀어야 하나 싶었다. 하지만 Item 클래스를 두고 ArrayList를 이용해서 정렬을 해주면 되었다.원하는 대로 정렬을 하기 위해서는 Collections 이라는 것을 알게 되었다.Collections.sort(items, (i1, i2) -> { return i2.price - i1.price; });Collections.sort()메서드는 정렬 시 두 요소의 순서를 결정하기 위해 Comparator의 비교 결과를 사용한다.이때 반환값이 다음과 같은 의미를 가진다.양수 (>0): i2가 i1보다 클 때 위치를 바꾼다. 따라서 i2가 앞으로 오..

[소프티어] Recovering the Region 레벨2 자바 풀이 (한양대 HCPC 2023)

https://softeer.ai/practice/9497 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai   백준 30875번 문제와 동일 문제.https://www.acmicpc.net/problem/30875 문제를 보고 이해가 잘 되지 않았다. 이게 무슨 문제지 싶었다. 정답그냥 N줄만큼 숫자 그대로 출력하면 정답이다.원리: 직쏘 스도쿠는 세로줄/가로줄/영역 모두 다른 숫자로 구성되어 있기 때문이다. 하지만! DFS로도 해결 할 수 있다.간만에 연습할겸 해당 문제를 DFS로 풀어보았다. import java.io.*;import java.util.ArrayList;import java.util.StringTokenizer;public class Main { private..

[소프티어] X marks the Spot 레벨2 자바 풀이 (한양대 HCPC 2023)

https://softeer.ai/practice/7703 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai   생각보다 단순한 문제 같았다.내가 생각했던 로직은 아래와 같다.n을 입력받아 총 몇번 반복할지 결정s[i]에서 x, X 찾고 해당 index를 p 변수에 담기t[i]에서 p번째 문자 찾기result에 대문자로 변환한 문자를 추가하기 하지만 결과는 시간초과 import java.io.*;import java.util.StringTokenizer;public class Main { public static String[] s; public static String[] t; public static StringBuffer result = new StringBuff..