Challenge
Careers
Class
Connect
로그인 후 문제풀이가 가능합니다.
JS
BigInt 필수 const fs = require('fs'); let [size, base, exponential] = fs.readFileSync('input.txt', 'utf8').trim().split(' ').map(BigInt); const mod = 1000000007n; // BigInt로 변환 let stack = 1n; let result = 1n; while (exponential > 0n) { // BigInt에서 0도 0n으로 표기 if (stack === 1n) { stack = base % mod; } else { stack = (stack * stack) % mod; } if ((exponential & 1n) === 1n) result = (result * stack) % mod; exponential >>= 1n; // BigInt에...
왜 일치하지 않는 TC가 생기는지 모르겠어요ㅠㅠ (C++)
#include<iostream> using namespace std; int main(int argc, char** argv) { int K,P,N; cin >> K >> P >> N; int result = K; for(int i = 0 ; i< N; i++){ result *= P; } cout << result%1000000007; return 0; }
두 개의 차이점이 뭘까요?
하나는 그냥 반복문으로하고 하나는 재귀문을 사용했는데 재귀문을 사용시에는 오답으로 됩니다. 이유가 뭘까요? //반복문 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); long K = Long.parseLong(st.nextToken()); long P = Long.parseLong(st.nextToken()); long N = Long.parseLong(st.nextToken()); for(int i = 0; i < N; i++) { K = (P * K) % 1000000007L; } System.out.println(K); br.close(); } //재귀문 public static vo...
python 시간초과 발생 (해결완료 했지만 이해안가서 질문했습니다.)
실패 코드 K, P, N = map(int, input().split()) mod_value = 1000000007 virus = pow(P, N) virus = (K * virus) % mod_value print(virus) 성공 코드 def calculate_virus_count(K, P, N): MOD = 1000000007 result = K for i in range(1, N+1): result = (result * P) % MOD return result K, P, N = map(int, input().split()) result = calculate_virus_count(K, P, N) print(result) IDE를 통해서 확인해보면 실패 코드가 반복문을 사용하지 않아 좀 더 디버깅이 빠르게 됐습니다. 혹시나 하여 재귀함수를 통해 구현한 코드도 있는데 그 코드도 시간초과가 나왔습니다. 반복문이나 불필요한 연산을 줄였는데도 시간초과가 나와 그냥 나머지를 연산 도...
NodeJS 바이러스
안녕하세요. 바이러스 문제를 풀었습니다. readline 모듈이 익숙치 않아서 fs 모듈을 이용해서 풀었는데, 계속 틀립니다. 이유를 알 수 있을까요? 아래는 제가 작성한 코드입니다. const fs = require( 'fs'); const input = fs.readFileSync( '/dev/stdin').toString().trim().split( ' '); const inputData = input[ 0].split( ' ').map( Number); let K = inputData[ 0]; const P = inputData[ 1]; const N = inputData[ 2]; for( let i = 1; i <= N; i++) { K = ( K * P) % 1000000007; } console.log( K); + const fs = require( 'fs' ); 를 import { readFileSync } from 'fs'; 로 수정하면 ReferenceErro...
[JavaScript] 바이러스 문제 맞왜틀 질문
K에 N 번 P를 곱한 값을 구하는 그냥 반복문을 통한 간단한 연산(및 나머지 연산) 문제인데... 자꾸 TC 4개가 오답처리가 됩니다 (TC25, TC28, TC29, TC31) 매우 간단한 로직이라 다시 확인해봐도, 틀릴 부분이 없는데 왜 자꾸 틀리는지 모르겠어요ㅠㅠ 혹시 JavaScript 로 이 문제를 푸신 분이 계시다면, 도와주시면 정말 감사하겠습니다... 제가 작성한 코드는 다음과 같습니다. 가장 마지막의 solution 코드를 보시면 됩니다. const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const input = []; rl.on("line", (line) => { line ? input.push(line) : rl.close(); }).o...
바이러스 문제 질문드려요~! (파이썬 형변환)
import math import sys K,P,N = map(int,sys.stdin.readline().split()) dp = [] for i in range(0,N+1): dp.append(K*math.pow(P,N)) if __name__ == "__main__": print(dp[N]%1000000007) 이렇게 짰는데 결과값이 소수첫째자리가 출력되서 나옵니다. 테케 2 3 2 <- 이거 18 나와야 정상인데 18.0이 나오더라구요! C++하다 파이썬으로 옮겨온 파린이라 넘 기본적인 질문 드리는거 같아 죄송하네여 ㅠㅠ 이거 형변환 어디다 넣으면 될까요??
바이러스 문제 시간초과 이유를 모르겠네요.
시간을 줄일 수 있는 방법 알려주시면 감사하겠습니다`
바이러스 반례 부탁합니다.
일부 오답이 있네요. #include using ll = long long; using namespace std; int main(int argc, char** argv) { ll K, P, N, ans, mod = 1000000007; cin>>K>>P>>N; ans = K*pow(P,N); cout<
연습문제 / 바이러스 예외 케이스 궁금합니다.
실행시간이나 메모리도 통과된거 같은데... 잘 모르겠습니다 ㅠ