Loading...

[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 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..

[swexpert] 1284. 수도 요금 경쟁 (java, D2)

package com.ssafy.edu; 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 r){ caseTwo+=(w-r)*s; } System.out.printf("#%d %d\n",tc,caseOne

[swexpert] 1928. Base 64 Decoder (D2, java)

다행이도 자바는 라이브러리를 제공해준다 엔코딩, 디코딩을 처음 해보는 것 같다 import java.util.Base64.Decoder; import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int t=sc.nextInt(); sc.nextLine(); for (int i = 0; i

[swexpert] 1954. 달팽이 숫자 (java, D2)

n이 4이면 4의 제곱인 16까지 증가시키며 써주면 된다. 이동 방향을 보면 x값 증가, y 값 증가, x 값 감소, y값 감소 순으로 이동한다. dr, dc에 위의 순서에 해당하게 써준다. cur는 방향을 바꿀 때마다 1씩 증가한다. cur를 4로 나눠주면 순환되는 이동 방향에 따라 증가 혹은 감소시키는 값이 나오게 된다. 계속 진행하다가 num이 n*n 보다 커지면 끝내준다. import java.util.Scanner; public class Solution { static int dr[]= {1,0,-1,0}; static int dc[]= {0,1,0,-1}; public static void main(String[] args) { Scanner sc=new Scanner(System.in); ..

[swexpert] 2019. 더블더블 (java, D1)

Math.power는 실수형을 반환하므로 int로 치환한 후 출력해주면 된다 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); for (int i = 0; i