본문 바로가기

SWEA10

[SWEA] 2001번 - 파리 퇴치 [Java] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PzOCKAigDFAUq 1.  아이디어 N의 크기가 작아서 배열의 각 점에서 파리채를 전부 내리쳐보는 브루트포스 알고리즘으로 해결이 가능하고 누적합 배열을 활용해도 해결이 가능하다.2. 문제풀이 브루트포스는 배열의 해당 점이 파리채의 왼쪽 위가 위치한다고 가정하고 4중 for문을 활용했다. 누적합 배열은 2차원 누적합으로 1행 1열부터 r행 c열까지 두 점을 대각점으로 하는 직사각형의 넓이가 저장되게 했다.3. 코드 import java.io.*;import java.util.*;public class Solution { public static void .. 2025. 2. 13.
[SWEA] 5432번 - 쇠막대기 자르기 [Java] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWVl47b6DGMDFAXm 1.  아이디어 Stack 자료구조를 활용하면 해결할 수 있다.2. 문제풀이 열린 괄호 뒤에 닫힌 괄호가 오면 레이저, 닫힌 괄호 뒤에 닫힌 괄호가 오면 쇠막대기의 끝 부분이 된다. 이를 위해 현재 괄호 이전에 어떤 괄호가 나왔는지 before 변수에 저장하는 방식으로 구현했다. 열린 괄호는 쇠막대기의 시작 또는 레이저 후보이므로 일단 Stack에 넣고 닫힌 괄호가 등장했을 때 레이저면 지금까지 등장한 쇠막대기의 수만큼 조각이 생기고, 닫힌 괄호가 쇠막대기의 끝이면 해당 쇠막대기 조각 1개가 생긴다.3. 코드 import java.io... 2025. 2. 13.
[SWEA] 8931번 - 제로 [Java] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AW5jBWLq7jwDFATQ 1.  아이디어 Stack 자료구조를 활용하면 간단하게 해결할 수 있다.2. 문제풀이 0이면 Stack에서 pop, 0이 아니면 Stack에 push를 하면 간단하게 영수증을 구현할 수 있다.3. 코드 import java.io.*;import java.util.*;public class Solution { public static void main(String[] args) throws IOException {// BufferedReader br = new BufferedReader(new InputStreamRead.. 2025. 2. 13.
[SWEA] 1984번 - 중간 평균값 구하기 [Java] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pw_-KAdcDFAUq 1.  아이디어 Math.round 메서드로 소수점 첫째자리에서 반올림할 수 있다.2. 문제풀이 주어진 입력을 배열로 받아 정렬 후 양 끝 원소를 제외하고 평균을 구하면 됐다. 이때 반올림을 위해 Math.round를 사용했다.3. 코드 import java.io.*;import java.util.*;public class Solution { public static void main(String[] args) throws IOException {// BufferedReader br = new BufferedReader(.. 2025. 2. 13.
[SWEA] 2005번 - 파스칼의 삼각형 [Java] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5P0-h6Ak4DFAUq 1.  아이디어 2차원 배열로 파스칼의 삼각형을 표현했을 때 위의 두 원소의 합이 아래 원소가 되는 다이나믹 프로그래밍으로 해결했다.2. 문제풀이 위쪽과 왼쪽에 패딩을 준 후 0행 0열을 1로 초기화하면 점화식으로 파스칼의 삼각형을 구할 수 있었다. 이후 순회를 하며 0에서 갱신이 안됐으면 순회를 종료하는 방식으로 출력했다.3. 코드 import java.io.*;public class Solution { public static void main(String[] args) throws IOException {// Buf.. 2025. 2. 13.
[SWEA] 2068번 - 최대수 구하기 [Java] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5QQhbqA4QDFAUq 1.  아이디어 Math.max 메서드로 최댓값을 찾는 방식을 활용했다.2. 문제풀이 아이디어 그대로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Solution { public static void main(String[] args) throws IOException {// BufferedReader br = new BufferedReader(new InputStreamReader(Solution.class.getResourceAsStream("input.. 2025. 2. 13.
[SWEA] 2063번 - 중간값 찾기 [Java] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5QPsXKA2UDFAUq 1.  아이디어 배열에 담아 정렬 후 배열의 중간 원소를 찾는 방식으로 해결했다.2. 문제풀이 아이디어 그대로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Solution { public static void main(String[] args) throws IOException {// BufferedReader br = new BufferedReader(new InputStreamReader(Solution.class.getResourceAsStream(".. 2025. 2. 13.
[SWEA] 1966번 - 숫자를 정렬하자 [Java] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PrmyKAWEDFAUq 1.  아이디어 배열의 정렬은 Arrays.sort 메서드로 정렬할 수 있다.2. 문제풀이 주어진 입력을 배열로 받아 정렬 후 StringBuilder로 포맷팅해서 출력하는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Solution { public static void main(String[] args) throws IOException {// BufferedReader br = new BufferedReader(new InputStreamRea.. 2025. 2. 13.
[SWEA] 1954번 - 달팽이 숫자 [Java] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PobmqAPoDFAUq 1.  아이디어 달팽이의 위치와 방향을 변수로 관리하고 while문과 방향 배열을 조합해서 해결했다.2. 문제풀이 달팽이의 위치와 방향, 달팽이가 적을 숫자를 r, c, d, num 변수로 관리하고 시계 방향으로 방향 배열을 작성했다. 달팽이가 모든 수를 적을 때까지 반복하며 다음 위치가 맵의 밖이거나 숫자가 적힌 칸이면 방향을 변경하도록 했다.3. 코드 import java.io.*;public class Solution { private static final int[] dr = {-1, 0, 1, 0}; private s.. 2025. 2. 12.
[SWEA] 14229번 - 백만 개의 정수 정렬 [Java] https://swexpertacademy.com/main/code/userProblem/userProblemDetail.do?contestProbId=AX_Y-4T6-yoDFAVy 1.  아이디어 Arrays.sort 메서드로 정렬을 수행하면 간단하게 해결할 수 있다.2. 문제풀이 정렬 후 해당 인덱스의 값을 출력했다.3. 코드 import java.io.*;import java.util.*;public class Solution { private static final int MAX = 1_000_000; public static void main(String[] args) throws IOException {// BufferedReader br = new BufferedRe.. 2025. 2. 12.