본문 바로가기
반응형

Algorithm40

[SWEA] 6190. 정곤이의 단조 증가하는 수 (JAVA) 6190. 정곤이의 단조 증가하는 수문제 요약숫자 2개를 곱해서 단조 증가하는 수 중 최댓값 출력하기단조 증가: 자릿수가 단순하게 증가하는 수 예) 111566, 233359문제 접근숫자 2개를 곱한다.정수를 문자열로 만들어서 자릿수를 비교한다.이전 자릿수가 현재 보다 크면 단조 증가가 아니니까 false로 바꾼다.단조 증가인 경우 최댓값을 구한다.문제 풀이코드 구현import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for (int tc = 1; tc s.charAt(k)) { .. 2026. 2. 18.
[알고리즘] SWEA 기본 입출력 템플릿 - JAVA (Scanner) SW Expert Academy(SWEA) 문제는 입출력이 필요합니다.보통 테스트케이스가 있고, 출력 형태가 정해져 있습니다.SWEA 기본 템플릿import java.util.Scanner;class Solution { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for (int tc = 1; tc SWEA의 출력 형태#1 정답#2 정답#3 정답 2026. 2. 15.
[알고리즘] 부분집합 구현 (JAVA) - 비트마스크 vs 재귀 부분집합N개의 원소가 있을 때 각 원소를 넣거나 / 안 넣거나 (2가지 선택)👉 경우의 수는 2ⁿ1. 비트마스크for (int i = 0; i 1 (i & (1 1 AND연산은 둘다 1이면 12. 재귀static void powerset(int idx) { if (idx == N) { for (int i = 0; i 원소마다 넣는다 / 안 넣는다로 나뉘는 이진 트리 구조깊이는 N, 리프 노드 개수는 2ⁿ비트마스크는 빠르고 코드가 짧다는 장점이 있고,재귀는 조건 추가가 쉽다는 장점이 있다. 2026. 2. 15.
[SWEA] 1289. 원재의 메모리 복구하기 (JAVA) 1289. 원재의 메모리 복구하기문제 요약0으로 초기화된 값을 원래 메모리 값으로 복구해야 한다.메모리는 0과 1중 하나로 구성됨값을 바꾸면 끝까지 덮어씌운다. (000의 중간 0을 1로 바꾸면 011 됨)목표: 원래 메모리와 같아질 때까지 고쳐야 하는 최소 횟수 구하기문제 접근자릿수만큼 0 채운 배열을 만든다.메모리와 비교해서 다르면 뒤에까지 다 바꾸고 카운트+1문제 풀이코드 구현import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for (int tc = 1; tc 다른 풀이0과 1이 .. 2026. 2. 15.
[알고리즘] 버블 정렬과 선택 정렬 1. 버블 정렬 (Bubble Sort)개념인접한 두 값을 비교하면서 큰 값을 뒤로 밀어내는 방식한 사이클 끝나면 가장 큰 값이 맨 뒤에 픽스됨시간 복잡도O(N²)동작 방식예시: [5, 3, 4, 1] 1회전5, 3 비교 → 교환5, 4 비교 → 교환5, 1 비교 → 교환결과: [3, 4, 1, 5] → 5 맨 뒤에 고정 2회전3, 4 비교4, 1 비교 → 교환결과: [3, 1, 4, 5] → 4 고정 이처럼 사이클 한 번 끝날 때마다 가장 큰 값이 뒤에서부터 하나씩 확정된다.Java 구현for (int i = 0; i arr[j + 1]) { int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp;.. 2026. 2. 8.
[SWEA] 1213. String (JAVA) 1213. [S/W 문제해결 기본] 3일차 - String문제 요약주어진 영어 문장에서 특정한 문자열의 개수 출력하기문제 접근문장에서 문자 하나씩 보면서, 타겟이랑 같은지 첫 문자부터 순서대로 확인한다.다르면 false로 바꾸고 문장에서 첫 문자 비교 위치 옮기기index는 타겟 문자가 맨 뒤일 때를 기준으로 봐야 하니까 0부터 M-N+1 까지문제 풀이코드 구현import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = 10; for (int tc = 1; tc 다른 풀이while로 작성 가능for (int i =.. 2026. 2. 8.
반응형