자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.
출력
첫째 줄부터 N번째 줄 까지 차례대로 출력한다.
[느린 풀이법]
1. br.readLine을 통하여 값을 받은뒤 Integer.parseInt로 int로 형변환을 해준뒤에
조건식에 i부터 loop_int 까지를 넣어주고
2. i + "\n" 을 해주고 bw.flush를 이용해 바로바로 출력해주면 된다
참고로 \n를 해주는 이유는 보기좋게 개행을 해주는 부분도 있지만
인트값을 그대로 넣게되면 !"#$%&'()*+,-./0123456789:;<=>?@A
(블로그로 가져오며 한번더 변형되서 깨졌다.)
이렇게 char값으로 들어간다 참고로 A는 65번까지 찍은것이다
아스키 코드표를 본다면 알수있는데 65를 char로 타입변환을 한다면 A가 된다.
[빠른 풀이법]
빌더를 이용한 풀이법이며 빌더가 빠른 이유는
(스트링은 참조형 변수이며 주소값을 가지고있다 라는 걸 알고 있어야 한다, 실제값을 가진게 아니다)
간단하게 요약하자면 스트링은 "가" + "나" = "가나" 가 되는데
"가"와 "나"가 사라지는게 아니라 그대로 남아있고 새로운 "가나"라는 객체가 생성되는것이다
그렇기에 새로운 값을 계속 할당하는 행위가 반복되기에 갈수록 느려질수 바께 없다는 것이다
약 1000회 이상부터 급격히 느려진다고 한다.
반면 는 값이 변하는게 가능하기에 append를 이용하여 문자를 넣어 문제를 풀이한것이다.
'기능,개념 & 알고리즘 > 알고리즘' 카테고리의 다른 글
백준 4344 자바 (0) | 2021.08.31 |
---|---|
백준 4673 자바 (0) | 2021.08.31 |
백준 10952자바 (0) | 2021.08.24 |
백준 2439 (0) | 2021.07.25 |
백준 15552번 빠른 A+B (0) | 2021.07.21 |