목록구현 (59)
Dev.baelanche
단순구현 문제라 정말 막풀었다. 변수 이름이라도 그나마 알아볼수 있게 서술했다;; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.next(); int len = (s.length() * 5) - (s.length() - 1); drawSideLine(len); drawInnerLine(len); drawMiddleLine(len, s); drawInnerLine(len); drawSideLine(len); } public static void drawSideLine(int len) { int sideLine = 0; for(int i=1; i
입력을 컵홀더를 표시한 형태로 바꾼후 풀었다. 내가 짠 코드대로 하게되면 일반좌석만 있을경우에 출력이 오답이 나와서 그 부분만 예외처리했다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String s = sc.next(); String s2 = s; s2 = s2.replaceAll("S", "*S*"); s2 = s2.replaceAll("LL", "*LL*"); s2 = s2.replaceAll("\\*\\*", "*"); int cnt = 0; for(int i=0; i
배열에 폭죽이 터질때의 시간을 저장한다. 폭죽이 동시에 터진다면 1개만 카운트한다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int c = sc.nextInt(); int a[] = new int[c+1]; int cnt = 0; for(int i=0; i
차례대로 A AND B, A OR B, A XOR B, NOT A, NOT B 를 출력하면 된다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); char a[] = sc.next().toCharArray(); char b[] = sc.next().toCharArray(); for(int i=0; i
배열에 이름과 키를 담아 키가 최대값인 이름만 출력시키면 된다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true) { int n = sc.nextInt(); String s[][] = new String[n][2]; if(n==0) break; float max = 0; for(int i=0; i max ? Float.parseFloat(s[i][1]) : max; } String name = ""; for(int i=0; i
주어진 수에 6이 포함되면 5로 바꿔 최소값을 합치고, 5가 포함되면 6으로 바꿔 최대값끼리 합치면 된다. A, B 를 어떤 형태로 받던 상관없이 수만 잘 바꾸어주면 된다. 아래 코드에서는 정수로 받아 10으로 나누면서 각 자리수에 접근했다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println((makeMin(a) + makeMin(b)) + " " + (makeMax(a) + makeMax(b))); } public static int makeMin(int a) { St..
경우를 나열해보면 평론가수 - (소시지 수와 평론가수의 최대공약수) 를 유추할 수 있다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); System.out.println(m - gcd(n, m)); sc.close(); } public static int gcd(int x, int y) { while(y != 0) { int tmp = y; y = x%y; x = tmp; } return x; } }
입력한 네 수 중 두개씩을 이어붙여 하나의 수로 만든다. 수가 자료형의 범위를 넘어가게 되므로 수를 문자열로 취급하여 풀어야 한다. 정말 지저분하지만 내가 푼 방법을 서술해보겠다. 1. 수를 문자형으로 입력받아 이어붙인다. 2. 만들어진 두 수의 길이를 비교해 짧은쪽의 앞을 0으로 채운다. 3. 맨 끝 인덱스부터 더하여 10 이상일 경우 자리올림을 한다. 3 - 1. 자리올림할때 맨 첫 자리일 경우엔 앞에 1을 채운다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); String b = sc.next(); String c = sc.next(..