본문 바로가기
728x90

Algorithm - Java39

[Programmers - Lv. 3] 야근 지수 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr일주일 만에 쓰는 글. 소프티어에서 프로그래머스로 옮겨왔다. 각각 장단점이 있지만 프로그래머스는 역시 입출력 면에서 편하다.이번 문제는 풀고나서 효율화 면에서 애를 먹었다.분기 조건에 대해서 어떻게 구현해야할 지를 많이 고민했다. [문제 설명] 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각.. 2025. 2. 18.
[Softeer - Lv.3] 안전운전을 도와줄 차세대 지능형 교통시스템 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai처음에 보고 DFS로 했다가 테스트 케이스 40개 중에 3개만 오답이 나서한참을 찾다가 BFS도 하니까 이번엔 오답이 더 늘어서한참을 찾다가 조건문 중첩이 문제라는걸 깨닫고 겨우 해결한 문제풀고나니 결론은 오답 3개는 DFS의 오버플로우인 것 같다..진짜 DFS는 쓰면 쓸 수록 안 좋은... [문제 제약 조건]1 ≤ N, T ≤ 100처음에 제일 왼쪽 위의 교차로로 아래쪽 방향에서 진입하고 있으므로, 교차로(1,1)의 신호가 2, 10번 중 하나가 아니면 더 이상 진행을 할 수 없으므로 교차로는 단 하나[교차로(1,1)]로 계산한다. [입력형식]입력으로는 N과 시간 T가 첫 줄에 주어진다.다음 N2개의 줄에 각 교차로의 신호 집합이 주어.. 2025. 2. 10.
[Softeer - Lv. 3] Phi Squared Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai처음에 어케하지..? 했다가 큐 두번이라는 생각이 번뜩하면서바로 풀어버린 문제 오래 안걸리고 바로 풀어서 기분이 좋다.배열이나 ArrayList를 생각했다가 인덱스 관리가 너무 어려울 것 같아서Pair 클래스 선언 후 큐 두개로 해결했다. [문제 제약 조건]Java3초1024MB 1≤N≤500000각 미생물의 초기 크기는 1 이상 N 이하의 정수이다. 또한 같은 초기 크기를 가지는 두 미생물은 존재하지 않는다.1. 하루에 한 번 줄의 맨 앞에 있는 미생물부터 각 미생물은 차례대로 인접한 미생물 중 자신보다 크기가 작거나 같은 것들을 전부 흡수한다. 다른 미생물을 흡수한 경우, 미생물의 크기는 흡수한 미생물의 크기의 합만큼 커진다.2. 흡.. 2025. 2. 9.
[Softeer - Lv. 3] GINI야 도와줘 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai보자마자 BFS일 것 같았던 문제근데 BFS를 두번 써야 했음 ㅋㅋBFS를 진행하면서비가 각 좌표에 도착하는 최소시간과 비교하면되는 문제 자체는 다른 문제보다 쉬운 문제. [문제 제약 조건]Java1초256MB R, C ≤ 50‘H’와,’W’는 하나씩만 주어진다.태범이는 소나기와 강을 지나지 못하며, 소나기는 강과 태범이의 집에 옮겨지지 않는다.(소나기는 강으로 가면 소멸)  [입력형식]첫째 줄에 R과 C가 주어진다. 다음 N개 줄에는 지도가 주어지며, 문제에서 설명한 문자만 주어진다. [출력형식]첫째 줄에 태범이가 집으로 갈 수있는 가장 빠른 시간을 출력한다. 만약 소나기를 피해 집에 도착할 수 없다면 “FAIL”을 출력한다. 입력4 .. 2025. 2. 8.
[Softeer - Lv.3] 슈퍼컴퓨터 클러스터 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai간만에 괜찮게 푼 문제.오버플로우에 대해서 공부할 수 있었다.늘 그렇듯 dps로 했다가 이진탐색으로 변경그래도 이진탐색이 바로 내 머리에서 떠올라서 기분이 좋았음. [문제 제약 조건]Java5초1024MB 1≤N≤10^5인 정수1≤ai≤10^9인 정수1≤B≤10^18인 정수 [입력형식]첫째 줄에 컴퓨터의 수와 예산을 나타내는 정수 N과 B가 공백을 사이에 두고 주어진다.둘째 줄에 각 컴퓨터의 성능을 나타내는 N개의 정수 a1, a2, ..., an이 공백을 사이에 두고 주어진다.B의 범위가 매우 넓어, 사용하는 프로그래밍 언어에 따라 64비트 정수형을 사용해야 할 수 있음에 유의하시오. [출력형식]첫째 줄에 예산을 효율적으로 사용했을 때.. 2025. 2. 7.
[Softeer - Lv. 3] 나무 수확 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai이제 남은 문제가 거의 다 트리 아니면 DP라서 어렵다...그냥 보고 바로 구현 -> 시간초과 -> 다시 풀기이 순서를 문제마다 하고 있다.DP는 그냥 싫다. 이제...이 문제는 DP 구현 혼자 했다가 반례 하나에 2시간을 뻘짓했다.근데 그냥 문제를 잘못풀었는데 나머지가 뚫린 거였다.참 슬프다... [문제 제약 조건]Java3초1024MB 2 ≤ n ≤ 1,0001 ≤ 열매 수확량 ≤ 1,000 [입력형식]첫 번째 줄에는 격자의 크기를 나타내는 n 이 주어집니다.두 번째 줄 부터는 n 개의 줄에 걸쳐 각 행에 해당하는 열매 수확량 n 개가 공백을 사이에 두고 주어집니다. [출력형식]첫 번째 줄에 수로와 스프링클러를 잘 설치하여 얻을 수 .. 2025. 2. 6.
[Softeer - Lv.3] 나무 섭지 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai그래프 탐색 문제. 푸는 방법 자체는귀신이 출구까지 올 수 있는 최단 시간 이전에남우가 출구에 도달할 수 있는가이다.경로가 어떻든 귀신이 먼저 출구에 도착하면남우는 귀신을 뚫고 갈 수 없기 때문이다.그래서 푸는건 금방 풀었는데 맨날 하던 DFS로 하니 시간 초과가 떴다.그 김에 BFS로 바꾸면서 BFS 공부함. [문제 제약 조건]Java2초1024MB 1 ≤ n, m ≤ 1,0003 ≤  n * m [입력형식]첫 번째 줄에는 격자의 크기를 나타내는 n, m값이 공백을 사이에 두고 주어집니다.두 번째 줄부터는 n개의 줄에 걸쳐 각 행에 해당하는 격자의 정보가 공백없이 주어집니다. 'N'은 남우가 있는 곳, 'D'는 출구가 있는곳, 'G'는.. 2025. 2. 5.
[Softeer - Lv. 3] 자동차 테스트 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai간단간단.푸는데 10분도 안걸린 문제여서 원래는 안올리지만하루 하나씩 풀어서 올리기로정해서 올린당. [문제 제약 조건]Java3초1024MB * 1 ≤ n ≤ 50,000* 1 ≤ q ≤ 200,000* 1 ≤ 자동차의 연비 ≤ 1,000,000,000* 1 ≤ mi ≤ 1,000,000,000 (i는 1 이상 q 이하입니다. 즉, mi 는 각 질의에 대응하는 중앙값을 의미합니다.) [입력형식]첫 번째 줄에 n, q가 공백을 사이에 두고 주어집니다.두 번째 줄에는 n개의 자동차의 연비에 해당하는 값이 공백을 사이에 두고 주어집니다.주어지는 자동차의 연비는 서로 다름을 가정해도 좋습니다. -> 이게 난이도를 확 낮춰준다.세 번째 줄부터는 .. 2025. 2. 4.
[Softeer - Lv. 3] 통근버스 출발 순서 검증하기 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai그냥 대충 풀면 바로 n^3으로 시간초과나는데문제 자체는 간단해서 어려운 문제.생각을 해야할 부분이 카운팅인데결국은 검색해서 찾았다.... 답지 봐버림... [Softeer 소프티어] 통근버스 출발 순서 검증하기 (Python 파이썬)소프티어 인증평가 4차 기출 - 통근버스 출발 순서 검증하기 풀이 "특명: 수학 연산으로 시간복잡도를 줄여라!"velog.io보고 감탄했다. 진짜 수학이나 논리를 잘 생각해야 문제를 풀 수 있나보다. [문제 제약 조건]3≤N≤5,000인 정수버스 번호는 서로 중복되지 않는다. [입력형식]첫 번째줄에 수열의 크기 N이 주어진다.두 번째줄에 1부터 N까지의 정수가 재배열된 수열이 공백을 사이에 두고 주어진다. .. 2025. 2. 2.
728x90