Codingtest 37

[코딩테스트] br.readLine() 과 st.nextToken() 파헤치기

사실, 코딩테스트를 하다보면 스캐너를 사용하다가 -> 제한시간 때문에 버퍼라는 기능을 사용하게 된다. 버퍼를 사용하다가보면 나도 모르게 사용하는 구문 3가지가 있다. 1. BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); : 버퍼를 사용하겠다고 선언 하는 기능. 2. StringTokenizer st = new StringTokenizer(br.readLine()); : 스트링토큰을 사용하겠다고 선언하는것인데. 여기서 이 구문을 왜 써야 하는가가 중요 한 것 같다. br.readLine() 다음과 같이 작성하고 Run을 돌려보면 이렇게 사용이 된다. 빨간색 네모줄을 추가해주면 선언만 하는 것 같지만 작성해야하는 줄이 한줄이..

Codingtest 2022.10.09

[코딩테스트] 백준 2439번 별 찍기 -2 해설집 (Java)

이게 뭐라고 이렇게 머리가 아픈가 문제 정답 공백과 별을 만들어주기 위한 3중 for문이 필요한 문제이다. i++은 다음 반복할 때 i가 i+1 되어서 돌아오게된다. (헷갈리니까 주의하자 다음 프로세스에서 바로 적용되는게 아니다.) 공백을 A-1 해줘야지 공백이 생기고 그다음에 별이 들어갈것이다. 그리고 마지막은 개행 To be continue..

Codingtest 2022.10.08

[코딩테스트] 백준 2438번 별 찍기 해설집 (Java)

은근히 어려우면서 머리 아팠다. 문제 정답 2중 for문을 돌리게 된다. A가 주어지고 A가 주어진 만큼 반복문을 돌리다가 두번 째 반복문 B 객체가 반복문을 돌면서 * 별을 찍게된다. 하지만 System.out.print("*"); 이기 때문에 세로가 아닌 가로로 찍게된다. 그리고 한 바퀴 돌고나면 마지막 println() 을 통해서 공백과 개행이 된다. 끝 To be continue..

Codingtest 2022.10.06

[코딩테스트] 백준 25304번 영수증 (Java)

쉽게 풀라면 쉽게 풀 수 있겠지만, 내 머리에서 나온 방법이 곧 정답이 될 수 있는 자신감을 북돋게 하기위해서 자그마치 5시간을 공들였다. 문제 정답 바로 이게 버퍼로 만든 나의 정답이다. br.readLine() 이라는 개념은 간략하게 말해서 공백을 기준으로 읽어 내겠다 라는 의미이다. A B C (ABC 사이에 공백이있음) A B C 이런식으로 공백에 따라서 문자열을 나눈다. 여기서 for문 안에 st = new StringTokenizer(br.readLine()); 이 구문은 C = (Integer.parseInt(st.nextToken()) * Integer.parseInt(st.nextToken())); 이 구문이 너무 설명이 어렵다. 실패시 결국에는 10 10 10 을 적든 10 10 을 적..

Codingtest 2022.10.05

[코딩테스트] 백준 8393번 합 해설집 (Java)

아 뭔가... 간단한 문제인 것 같은데, 이거 하나 푸는데 2시간 걸렸다... 문제 정답 설명은 주석에 달아 놓았다. 중요한 것은 int sum = 0; 이값이 for문 안에 있을 때랑 밖에 있을 때랑 천지 차이이다. 다시 생각해보면 for 반복문을 돌 때 for 문에서 계속 sum 값을 0으로 초기화 하기 때문에 10이 계속 나왓던 것 같다. 그리고 Scope 개념에 대해서 더 잘알아야 겠다. 또 다른 방법? StringBuilder를 사용한 방법인데, 이 문제에서는 굳이 사용 할 필요는 없다 To be continue..

Codingtest 2022.10.03