문제 링크
주의사항
- JAVA를 사용하여 프로그램을 사용하였습니다.
- 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{
public static void main(String[] args){
}
}
문제 설명
접근 방법
- BufferedReader를 사용하여 입력 값을 받았습니다.
- 벌집을 구하는 honeyComb 함수를 만들었습니다.
- 방이 커질 때마다 범위가 6씩 증가하는 등차수열이다.
- 범위를 6씩 증가하여 숫자에 더한 뒤에 비교하여 몇 개의 방을 지나가는지 확인하였습니다.
- honeyComb함수에 결과를 result에 받았습니다.
- result를 bw에 저장하였습니다.
- BufferedWriter를 통해 저장된 결과를 출력하였습니다.
결과 코드
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//입력 값을 받는 BufferedReader
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//결과를 출력하는 BufferedWriter
long num = Integer.parseInt(br.readLine()); //입력값 저장
long result = honeyComb(num); //함수 결과 저장
bw.write(result + "\n"); //결과 bw에 저장
bw.flush(); //결과 출력
bw.close();
br.close();
}
public static long honeyComb(long num) { //벌집 구하는 함수
long result=1; //결과
long start = 1; //비교하는 수
long plus = 0; //start에 더하는 수
if(num==1) //받은 숫자가 1일 때 1 반환
return 1;
else {
for(;;) { //무한 반복 for문
plus += 6;
start+=plus;
result++;
if(num<=start)
break;
}
}
return result;
}
}
'백준' 카테고리의 다른 글
[백준] 단계별로 풀어보기(단계:8,기본수학1,JAVA)2869번, 달팽이는 올라가고 싶다. (0) | 2021.12.29 |
---|---|
[백준] 단계별로 풀어보기(단계:8,기본수학1,JAVA)1193번, 분수찾기 (0) | 2021.12.29 |
[백준] 단계별로 풀어보기(단계:8,기본수학1,JAVA)1712번, 손익분기점 (0) | 2021.12.28 |
[백준] 단계별로 풀어보기(단계:7,문자열,JAVA)1316번, 그룹 단어 체커 (0) | 2021.12.25 |
[백준] 단계별로 풀어보기(단계:7,문자열,JAVA)2941번, 크로아티아 알파벳 (0) | 2021.12.25 |
댓글