1. char s[101]; while(scanf("%10s",s)){ printf("%s\n",s); } ///////////////////////////////////// char s[101]; while(scanf("%10s",s)==1){ printf("%s\n",s); } 위와 아래의 차이점 -우선 scanf 는 eof를 만나면 -1을 리턴한다-이외에는 입력받은 개수만큼 값을 리턴한다-파일입출력 채점시 위의 코드는 파일의 끝을 만나도 -1이 리턴되기 때문에 계속해서 무한루프에 빠진다-아래의 코드는 eof를 만나면 -1이 리턴되기때문에 프로그램이 종료된다-이러한 섬세한 차이를 알아야 알고리즘 문제 풀 때 사소한 걸로 틀리지 않게 된다.....................;; 2.scanf에서 "%..
// 알고리즘 분류는 DP인데,, DP를 쓰지 않고 풀었다... 다른 사람 코드를 참고해서 DP로 풀어봐야겠다.. import java.io.*;import java.util.*; class Main{ public static void main(String[] args) throws IOException{ Scanner sc = new Scanner(System.in);String s = sc.nextLine();System.out.println(solve(s));sc.close(); } static int solve(String s){int index = s.length();int i = 0;StringBuffer sb = new StringBuffer(s);while(!isPalindrom(sb)){..
// d[i][j] 는 서쪽에 있는 돌의 갯수가 i개이고, 동쪽에 있는 돌의 갯수가 j개 일 때의 경우의 수import java.io.*;import java.util.*; class Main{ static int[][] d = new int[30][30];public static void main(String[] args) throws IOException{Scanner sc = new Scanner(System.in);int T = sc.nextInt();solve();for(int i=0;i
자바로 스택을 구현하는 방법은 여러가지가 있다. 1. 배열 이용하기 import java.io.*; import java.lang.*; import java.util.*; public class Main{ public static void main(String[] args) throws java.lang.Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = null; int N = Integer.parseInt(br.readLine()); ArrayStack stk = new ArrayStack(100000); for(int i=0;i
http://marobiana.tistory.com/91
1) Scanner 클래스를 이용해서 입력 받았을 때, 시간초과 발생 -Scanner 클래스 대신 BufferedReader 를 사용해서 입력 2) System.out.println 을 이용해서 출력하였을 때, 시간초과 발생 -System.out.println 대신 BufferedWriter 를 사용해서 출력 3) 소스 코드 import java.util.*; import java.lang.*; import java.io.*; class Main{ public static void main(String[] args) throws java.lang.Exception{ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); ..