문제
알고리즘 고민
패턴을 확인하기 위해 경계로 나누어지는 숫자를 확인하였다.
1
2 ~ 7
8 ~ 19
20 ~ 37
...
위 숫자들을 식으로 확인해보면
6 x 0 + 1
6 x 0 + 2 <= num < 6 x 1 + 2
6 x 1 + 2 <= num < 6 x 3 + 2
6 x 3 + 2 <= num < 6 x 6 + 2
6에 특정한 수를 곱해주는데 그 수는 1, 2, 3 처럼 증가하는 값이었다.
이를 이용해서 알고리즘을 작성하였다.
6 x val + 1 < 입력값 이라면 아직 도착을 하지 못한것으로 간주하고 반복한다.
더 해주는 값인 add 를 곱하는 val 변수에 더해주고 1 증가시킨다.
JAVA Code
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Ex02_r {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
int multival = 0, add = 1;
while (6*(multival)+1 < num) multival+=(add++);
System.out.println(add);
}
}
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 2775번 : 부녀회장이 될테야 (JAVA/자바) (0) | 2022.03.11 |
---|---|
[BOJ] 10250번 : ACM 호텔 (JAVA/자바) (0) | 2022.03.10 |
[BOJ] 2869번 : 달팽이는 올라가고 싶다 (JAVA/자바) (0) | 2022.03.10 |
[BOJ] 1193번 : 분수찾기 (JAVA/자바) (0) | 2022.03.10 |
[BOJ] 1712번 : 손익분기점 (JAVA/자바) (0) | 2022.03.10 |