목록테스트 (106)
삐까냥의 파도타기
문제 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15Khn6AN0CFAYD&categoryId=AV15Khn6AN0CFAYD&categoryType=CODE DFS 방식으로 구현했고, check 배열을 사용하여 같은 횟수이면서 같은 숫자를 탐색했는지 체크했습니다. 따라서 불필요한 탐색을 수행하지 않게되죠. 문제를 보니 DFS or BFS를 사용해야 할 것 같아, 백준사이트에서 DFS or BFS 문제를 조금 풀고왔는데 도움되네요. package sw; import java.util.Scanner; public class Q1244 { static int result, maxCount;stat..
문제 출처 : https://www.acmicpc.net/problem/11403 DFS 입니다. dsf에 익숙치 않아 아직은 어버버 거리네요. import java.util.Scanner; public class Q11403 { static int[][] a;static int num;public static void main(String[] args) {Scanner sc = new Scanner(System.in);num = sc.nextInt();a = new int[num][num];for ( int i = 0; i < num; i++ ) {for ( int j = 0; j < num; j++ ) {a[i][j] = sc.nextInt();}}for ( int y = 0; y < num; y++..
문제 출처 : https://www.acmicpc.net/problem/1697 BFS입니다. DFS로는 답이 안나오네요. import java.util.LinkedList;import java.util.Queue;import java.util.Scanner; public class Q1697_2 { public static void main(String[] args) {Scanner sc = new Scanner(System.in);int start = sc.nextInt();int goal = sc.nextInt();if ( start >= goal ) {//도착 장소가 더 작으면 빼기밖에 못하니 바로 계산System.out.println(start-goal);return;}int max = goal..
문제 출처 : https://www.acmicpc.net/problem/1260 기본 깊이우선 탐색 구현과 너비우선 탐색 구현입니다. 처음 구현하면서 학습한 블로그 주소 남깁니다. -> http://mygumi.tistory.com/102 import java.util.LinkedList;import java.util.Queue;import java.util.Scanner; public class Q1260 { public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt();int M = sc.nextInt();int V = sc.nextInt();int[][] A = new int[N][N];f..
문제 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV2b9AkKACkBBASw&categoryId=AV2b9AkKACkBBASw&categoryType=CODE 음... 오버플로우 대응 문제 였습니다.시간을 줄이기 위해서는 몇가지 생각을 하면 됩니다.문제에 나오는 식을 한번 보죠.A * | R - C | + B * { N - ( R * C ) }식을 두개로 나누어서 생각해볼게요.아래 표처럼 두개로 나누면 두개의 식 모두 양수밖에 나오지 못하는걸 알 수 있습니다.따라서 두개의 식의 최소값을 구해야 합니다. A * | R - C | >= 0 (첫번째 식) B * { N - ( R * C ) } >=..
문제 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh&categoryId=AV134DPqAA8CFAYh&categoryType=CODE import java.util.Scanner; public class Solution{ public static void main(String[] args) {for ( int k = 1; k < 11; k++ ) {Scanner sc = new Scanner(System.in);int num = sc.nextInt();int[] buildings = new int[num];for ( int i = 0; i < num; i++ ) {bu..
문제 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV6c6bgaIuoDFAXy&categoryId=AV6c6bgaIuoDFAXy&categoryType=CODE 실제 업무를 수행하듯이 코드를 그대로 구현했습니다.다만 시간을 1씩 증가하여 구현한것은 효율적이지 못해서다음 수행해야할 시간을 계산하여 다음 시간으로 건너띄게 구현했습니다. 정답률이 약 50%정도인걸 보면 난이도는 쉬운편이네요.실제로 알고리즘 함정은 없었으며,문제대로 구현 가능한가를 판가름하기 위한 문제입니다. import java.util.LinkedList;import java.util.Scanner; public class Solu..
문제 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV2gbY0qAAQBBAS0 import java.util.Scanner; public class Solution{ public static void main(String[] args) {Scanner sc = new Scanner(System.in);int num = sc.nextInt();for ( int i = num; i >= 0; i-- ) {System.out.print(i + " ");}}} 가볍게 제출 방식을 알아보기 위한 손가락 풀기~
문제 출처 : https://www.acmicpc.net/problem/9996 import java.util.Scanner; public class Q9996 { static String[] search;static boolean same;public static void main(String[] args) {Scanner sc = new Scanner(System.in);int num = sc.nextInt();search = sc.next().split("\\*");for ( int i = 0; i < num; i++ ) {System.out.println(split(sc.next()));}}public static String split(String input) {if ( search[0].len..
문제 출처 : https://www.acmicpc.net/problem/9933 import java.util.HashSet;import java.util.Scanner; public class Q9933 { public static void main(String[] args) {Scanner sc = new Scanner(System.in);int num = sc.nextInt();HashSet list = new HashSet();for ( int i = 0; i < num; i++ ) {String temp = sc.next();String reverse = new StringBuffer(temp).reverse().toString();if ( list.contains(reverse) || temp..