스택사용하여 쇠막대 레이저로 절단하기 스택에 쇠막대 시작기호를 쌓는다. 레이저가 나오거나, 쇠막대가 끝나면 조각 갯수를 늘린다. 레이저가 나오면, 조각 갯수에 스택에 쌓인 시작갯수를 추가한다. 쇠막대가 끝나면, 조각 갯수에 +1하고 스택에서 하나 꺼낸다. package com.company; import java.io.*; import java.util.*; public class BOJ10799 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter..
Coding Test(Algorithms)
nextInt() 사용 후 nextLine() 사용 지양 nextLine: 줄바꿈 바로 다음부터 입력받음 nextInt: 한 토큰을 입력받은 후 \n를 제거하지않음, nextInt 사용 후 nextLine를 사용시, String에 \n가 저장되는 문제 발생 package com.company; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.*; public class BOJ9093 { public static void main(String[] args) throws IOException { Scanner sc=new Scanner(System.in); B..
출력에서 마지막 \n은 채점에 영향을 주지않음. 여러개의 테스트케이스를 처리할 때, 초기화 유의 package com.company; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.EmptyStackException; import java.util.Scanner; import java.util.Stack; public class BOJ9012 { public static void main(String[] args) throws IOException { Scanner sc=new Scanner(System.in); BufferedWriter bw = new..
"NO" 판단 알고리즘 단순화, 불필요한 변수 정리 스택에 오름차순으로 입력하는 변수 save를 입력변수로 초기화, 한 번 스택에 입력한 수는 다시 넣을 수 없다. 그런데, 두번 이상 연속 pop()해서 꺼내버리면, 꺼내진 수는 더 이상 수열로 출력할 수 없으므로 한 번 pop()해서 원하는 수가 나오지 않으면 불가능한 경우로 처리한다. package com.company; import java.io.*; import java.util.*; public class BOJ1874 { public static void main(String[] args) throws IOException { Scanner sc=new Scanner(System.in); StringBuilder sb = new StringBu..
시간복잡도 O(주어진문자열+명령어갯수)에서 더 줄일 수 없으므로, 시간초과문제 해결을 위해 Scanner사용에서 BufferedReader사용으로 변경함 package com.company; import java.io.*; import java.util.*; public class BOJ1406 { public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); Stack left=new Stack(); Stack right=new Stack(); String in..
http://boj.kr/2558 2558번: A+B - 2 첫째 줄에 A, 둘째 줄에 B가 주어진다. (0 < A, B < 10) www.acmicpc.net import java.util.*; public class BOJ2558 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.print(a + b); } }