Loading...

[swexpert] 5215. 햄버거 다이어트 (java, D3)

부분 집합으로 풀어주었다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Solution { static int t,n,l; static int[] scores; static int[] calories; static int answer; public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in..

[swexpert] 3307. 최장 증가 부분 수열 (java, D3)

n이 작아서 가능한 이중 포문 방법이다. 현재 수보다 이전 인덱스에 작은 수가 있으면 그 수에서의 최대 길이+1과 자기 자신의 길이 중 가장 긴 것이 현재 위치에서 가장 긴 길이이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Solution { static int t; static int n; static int[] arr; static int[] len; public static void main(String[] args) throws NumberFor..

[swexpert] 1223. 계산기2 (java, D4)

입력이 끝날 때까지 정보를 입력받는다 BufferedReader의 경우 input이 null이면 끝난다 +는 무시하고 숫자를 스택에 계속 넣어주고 *은 스택 타입을 int로 설정했기 때문에 -1로 해서 넣어준다. 숫자를 넣기 전 스택 최상의가 -1(*)라면 숫자를 곱해줘야 하므로 현재 숫자와 스택에서 *이전의 숫자 (pop을 두번 해준다) 를 곱해서 다시 스택에 넣어준다. 마지막에 스택에 들어있는 있는 숫자들을 모두 더해주면 된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import j..

[swexpert] 3499. 퍼펙트 셔플 (JAVA, D3)

카드 적힌 글자 A B C D E 인덱스 0 1 2 3 4 가 있으면 A는 인덱스가 i+n/2+1 인 D와 매칭이 된다. 첫 번째 묶음을 길이가 N/2만큼 나눌 건데 홀수인 경우만 하나를 더 넣어주므로 N/2+1 처럼 1 처해준다. 따라서 첫 번째 묶음의 마지막 인덱스는 N이 짝수인 경우 N/2이고 홀수인 경우 N/2+1이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Solution { static int t,n,last; static String[] card; public static void m..

[swexpert] 1861. 정사각형방 (D4 , java, dfs풀기)

bfs풀 거 같은데 dfs로 해보라해서 dfs로 풀어봤다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Solution { static int t,n; static int[][] map; static int[] xpos= {0,0,1,-1}; static int[] ypos= {1,-1,0,0}; static int ans,cnt,place; public static void main(String[] args) throws NumberFormatException, IOException { Buffered..

[swexpert] 5432. 쇠막대기 자르기 (JAVA)

1. ( 괄호라면 cnt+1해줘서 막대의 개수를 늘려준다. 2. ) 괄호가 왔을 때 바로 직전이 ( 라면 레이저라서 바로 직전의 ( 하나를 제외한 (((들의 개수를 구해주면 된다. 3. 만약 ) 괄호의 바로 전이 (가 아니라면 해당 막대의 끝이므로 ans+1을 더해주고 막대의 개수 cnt를 한개 빼준다 import java.util.Scanner; public class Solution { static int t; static int ans; static int cnt; public static void main(String[] args) { Scanner sc=new Scanner(System.in); t=sc.nextInt(); for (int tc = 1; tc

[swexpert] 11387. 몬스터사냥 (java)

import java.util.Scanner; public class Solution { static int t; static int d,l,n; public static void main(String[] args) { Scanner sc=new Scanner(System.in); t=sc.nextInt(); for (int tc = 1; tc

[swexpert] 2805. 농작물 수확하기 (java)

1) 열의 인덱스가 0, 1, 2, 3 만큼 증가할 때 사각형 가운데 n/2까지는 열의 인덱스(i) +1 까지 왼쪽 오른쪽을 더해가며 검사한다 2) i== n/2+1 부터는 검사 횟수를 n-i 번 왼쪽 오른쪽을 더하며 (총 검사횟수는 줄어듬) 더한다. import java.util.Scanner; public class Solution { static int t; static int n; static int[][] farm; static int sum; public static void main(String[] args) { Scanner sc=new Scanner(System.in); t=sc.nextInt(); for (int tc = 1; tc

swexpert 1289. 원재의 메모리 복구하기 (java)

flag변수를 둬서 현재 또 바꿔야할 부분이 있는지 검사했습니다. 1. 모든 값이 000 이렇게 0인 상태에서 1로 바꾸는 것이 시작이니 flag를 1로 해서 1이 있는 곳을 검사합니다 2. 해당 위치의 문자를 1로 바꿨다고 가정하고 그 위치의 다음 인덱스부터 이번에는 0이 있는 곳이 있는지 검사합니다. 해당 위치부터 끝까지 숫자가 모두 1로 바뀌었으니 이제 flag변수는 0으로 바꿔줍니다. 3. 이제 더이상 바꿀 문자가 없을 때까지 진행하고 indexOf가 -1이 나오면 없다는 뜻이니 끝내줍니다 import java.util.Scanner; public class Solution { static int t; public static void main(String[] args) { Scanner sc=n..