문제를 보자마자 무의식적으로 이중배열을 사용하여 문제를 풀려고 했었다. 이중배열 선언 후, 하나하나 메모리를 할당해주어 방번호를 지정하여 알아내는 방법을 사용하면, 확실하게 구현이 가능했으나, 이건 속도적, 메모리적으로 매우매우매우 비효율적인 방법이다. 이 문제는 나눗셈과 모듈러 연산 한번씩이면 바로 해결되는 아주 간단한 문제이다. Code: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buffered..
처음 문제를 보고, 단순한 객체 구현만으로 쉽게 풀 수 있을 줄 알았다.... ㅎㅎ...시간 제한이 0.15초에 입력 범위가 10000000000이라는 사실을 간과했다. 단순 객체 구현으로 풀면 10000% 시간 초과가 나올 것이 뻔했기에 문제를 수학적으로 접근하는 것이 필요했다. 달팽이는 낮에 A 만큼 올라가고, 밤에 B만큼 떨어진다. 즉, 전체 높이를 (A-B)만큼 나눈 몫이 정답인가? 했지만 한 가지 조건이 더 있다. 한번 달팽이가 정상에 도달하면, 달팽이는 미끄러지지 않는다. 정리하면, 달팽이는 하루에 (A-B)씩 V 높이를 오르는 것이 아닌, (A-B)씩 V - B 높이를 오르는 것이다. 또한 높이와 달팽이의 속력을 나눈 나머지가 0이면, 나눈 몫이 정답이겠지만, 나누어 떨어지지 않는다면, 달팽..
원리는 간단하다. 시작 숫자가 1일 때, 벌집은 1개의 층을 가진다는 개념부터 시작하면, Number Layer 1 1 ~7 2 ~19 3 ~37 4 ~61 5 즉, 앞 층의 마지막 숫자에 Layer x 6 을 더해주면 다음 층의 숫자 범위를 구할 수 있다. Code: import java.io.IOException; import java.util.Scanner; public class Main { public static void main(String[] args) throws IOException { Scanner input = new Scanner(System.in); int firstInput = input.nextInt(); int layer = 1; int start = 1; while(start
- Async
- 맛집
- 이탈리안 레스토랑
- react-native
- 파니노구스토
- await
- Promise
- javascript
- redux
- react
- 인천 구월동 맛집
- 정보보안기사 #실기 #정리
- 인천 구월동 이탈리안 맛집
- redux-thunk
- AsyncStorage
- Total
- Today
- Yesterday