문제를 접근하는 테크닉을 익혀야함 for문을 여러개쓰면 절대 안되고 가장 작은 것과 가장 큰 것을 더해서 limit와 비교해 클 때와 작을 때를 구분해서 2명을 보낼지 1명을 보낼지 끝까지 파악해줌 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26import java.util.*; class Solution { public int solution(int[] people, int limit) { int answer = 0; Arrays.sort(people); // for(int i=0; i
알고리즘 풀이
(a,b,c) - (e,f)의 조합을 (0,a,b,c) - (0,e,f)의 식으로 가상의 0개를 생성해주어 곱한 후에 옷을 하나도 안입는 경우인 (0) - (0)만 빼주는 생각을 참고 안했으면 절대 못풀었을 것임 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21import java.util.*; class Solution { public int solution(String[][] clothes) { HashMap hm = new HashMap(); for(int i=0; i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20import java.util.*; class Solution { public boolean solution(String[] phone_book) { boolean answer = true; for(int i=0; i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123import java.io...
빠른 연산을 위해 Scanner가 아닌 BufferedReader 사용 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Scanner sc = ne..
lac cal 처럼 쌍을 이루는 경우 이외에 abcba 처럼 단어하나가 회문인 경우도 통과시켜주어야함 ( 다른 사람 코드보고 알 수 있었음 ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); sc.nextLine(); String[] words = new String[N]; for(int i=0; i
Stack문제인줄 몰랐고 아치형으로 어떻게 그리는 줄 몰랐음 A는 A끼리 B는 B끼리 전부 연결해야하는 것인줄 알고 문제 파악에 실수함 AA 1쌍씩 BB1쌍씩 묶어주면 됨 stack으로 계속집어넣어주면서 쌍만들어준 후에 for문 통과했을 때 stack이 싹 비어있으면 문제 해결 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); sc.nextLine(); int ..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); sc.nextLine(); Stack stack = new Stack(); while(sc.hasNext()) { String s = sc.next(); if(s.equals("push")) { stack.push(sc.nextInt()); } else if(..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); Stack stack = new Stack(); int result=0; for(int i=0; i
a를 1칸씩 옮겨가면서 겹치는 max값을 구한 후에 해결 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); String b = sc.next(); int max = 0; for(int i=0; i