본문 바로가기

코딩테스트

(66)
[JAVA-SW_TEST_SAMPLE] SWEA 1767 - 프로세서 연결하기 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com ✅ 문제 요약좌표상에서 core의 위치가 주어졌을 때 코어 연결을 위한 전선의 길이를 출력하라모든 코어가 연결되지 않을 수 있고 연결된 코어 수가 같을 땐 최소 전선 길이를 출력하라 🤔 문제 풀이생각보다 고려할 것이 많아서 쉽지 않았던 문제였다.보자마자 완전탐색으로 풀어야겠구나 생각이 들었다. 1. 코어의 위치 정보를 저장한다. 저장하기 위한 자료구조로 ArrayList를 사용했다.이때 좌표상에서 가장자리에 위치한 코어는 이미 연결된 코어이며 필요한 전선 길이가 0이므로리스트에 저장하지 않았다.for(int i = 0; i 2. 완탐시작, 리스트에 담아놓은 각 코어..
[JAVA-D3] SWEA 6485 - 삼성시의 버스 노선 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com ✅ 문제 요약N개의 Ai~Bi 버스 노선이 주어지고 P개의 버스가 주어졌을 때 각 버스가 지나다니는 노선 수를 출력하라 🤔 문제 풀이문제설명이 좀 어렵게 적혀있긴 하지만 간단히 말해서"N개의 범위가 주어지고 P개의 수가 주어졌을 때 각 P가 속하는 범위 개수를 구하라"정도로 이해하면 될 것 같다. N개의 범위를 저장하기 위해 ArrayList list 를 사용했다.P개의 버스를 받을 때마다 Pi 버스를 list.get(i)[0] ~ list.get(i)[1] 사이에 속하는지 탐색하고속한다면 count + 1 해주었다.전체 범위 탐색이 끝나면 count를 answer..
[JAVA-D3] SWEA 3431 - 준환이의 운동관리 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com ✅ 문제 요약최소 운동시간 L, 최대 운동시간 U, 준환이의 운동시간 X가 주어졌을 때X에 따른 추가 운동시간이나 이미 초과했다면 -1, 제한된 운동시간에 맞췄다면 0을 출력하라 🤔 문제 풀이매우 쉬운 문제였다.별다른 알고리즘은 필요하지 않았고 L, U, X를 입력 받은 뒤X가 L보다 작은지, L~U 사잇 값인지 U보다 큰지에 따른 답을 출력하면 됐다. 🚨CODEimport java.util.*;import java.io.*; public class Solution { public static void main(String[] args) throws IOEx..
[JAVA-D3] SWEA 1221 - GNS SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com ✅ 문제 요약0~9인 숫자를 String형식으로 나타낸 새로운 숫자체계가 있다고 가정했을 때,새로운 숫자체계들을 입력 받았을 때 오름차순 정렬한 결과를 출력하라 🤔 문제 풀이0~9까지의 새로운 String 숫자 체계를 10진수에 매핑하여 치환하고 Arrays.sort 로 오름차순정렬해준 뒤, 다시 10진수를 String 숫자 체계에 매핑하여 치환해주는 방식을 채택했다.매핑해주는 방법은 switch-case 방식으로 "ZRO" -> 0, 3 -> "THR" 같은 형식으로 치환해주었다. 개인적으로 else-if 반복과 switch-case 방식은 코드길이가 길어져서 선..
[JAVA-L2] 프로그래머스 - 올바른 괄호 🤔 문제 풀이size라는 변수를 정의해두고 '(' 가 등장하면 size + 1, ')' 가 등장하면 size -1 을 하게 했다.그리고 매번 size를 검사하여 만약 size가 0보다 작은 경우 즉시 false를 리턴,또한 마지막에 size를 다시 한번 검사하여 size != 0인 경우 false를 리턴하도록 했다.여기까진 문제가 없으나 괄호가 담긴 문자열을 순회하기위해 문자열.split("")을 사용하여괄호 문자열을 String 배열로 변환했고 String 배열에 인덱스로 접근하여 각 인덱스별 문자에접근했다. 하지만 효율성에서 시간초과 발생.. 👻 문제점 & 원인원인은 역시 split을 이용해 String 배열로 변환한 뒤 사용한 것,문자열에 charAt()을 이용해 바로 접근하거나 문자열.toCh..
[JAVA-D3] SWEA 1873 - 상호의 배틀필드 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com ✅ 문제 요약전차는 상하좌우, 포탄 발사가 가능하며 만약 2종류의 벽이나 물을 만나면 해당 방향으로 진행할 수 없다.또한 포탄을 발사했을 때 맵의 끝까지 날아가며 벽돌 벽을 만나면 해당 벽을 부수어 평지로 만들고 포탄은사라지며 강철 벽을 만나면 아무 일도 일어나지 않는다.명령어를 순차적으로 실행했을 때의 map의 상태를 출력하라. 🤔 문제 풀이별다른 알고리즘이 필요하지 않은 완전 빡구현 문제였다.난이도가 높지 않았지만 워낙 문제에서 주어지는 조건들이 많기 때문에 문제를 잘 읽고 요구사항을 잘 구현해야 했으며 예외사항도 잘 체크해야 했다. 또한 지나칠 수 있는 조건이..
[JAVA-D3] SWEA 6808 - 규영이와 인영이의 카드게임 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com ✅ 문제 요약규영이는 고정적인 순서로 카드를 내고 인영이는 9! 경우의 수 순서대로 카드를 낼 때두 사람의 최종적인 카드 점수 합을 비교하여 규영이가 이기는 경우의 수와 지는 경우의 수를 출력하라 🤔 문제 접근규영이가  갖게될 카드가 입력으로 주어지기 때문에 크기 19인 (1부터 18까지를 위함) boolean 배열을 만들어9가지 수를 입력 받을 때 boolean배열[해당수] = true 를 해주며 규영이의 카드 배열 gnum에 저장하고이후 false인 수들이 인영이의 카드 이므로 크기 9의 inum 배열에 넣어두었다. 재귀 호출을..
[JAVA-D3] SWEA 1493 - 수의 새로운 연산 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 🤔 문제 풀이 느낌상 별다른 알고리즘이 필요한 문제는 아니고 빡구현 문제였던거 같다. 1사분면내에서 대각선으로 수가 커지기 때문에 규칙성을 잘 파악해야했다. 대각선으로 증가하는 수들을 어떻게 저장할까 고민하다가, 시간이 오래 걸릴 것을 우려하여 수 전체를 저장하지 않고 x=1인 라인의 y값들을 ylist에 저장해놓기로 했다. 보면 알겠지만 x=1 라인의 경우 초기(value) 1, 증가 값 (addict) 0 이라고 할 때 value = value + (addict++) 이라는 규칙을 발견할 수 있다. (1+0, 1+1, 2+2, 4+3 ...) 주어지는 p와 q..

반응형