DOMINO 문제 관련 질문드립니다.

  • hisdream86
    hisdream86

    DOMINO 문제를 자바로 구현했는데... Timeout에 걸리네요 ㅠㅠ

    답안 제출하신 분들을 봐도 자바로는 성공하신 분이 없는듯 하고..

    아니면 제 코드에 문제가 있는걸까요?

    아래는 제 소스코드입니다.

    import java.io.InputStream;
    import java.io.PrintStream;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            Domino solver = new Domino(new Scanner(System.in));
            solver.solve();
            sc.close();
        }
    
        public static class Domino {
            private Scanner scanner;
            private PrintStream print;
            InputStream stream;
    
            public Domino(Scanner scanner) {
                this.scanner = scanner;
                print = new PrintStream(System.out);
            }
    
            public void setPrintStream(PrintStream o) {
                if(print!=null) {
                    print.close();
                }       
                print = o;
            }
    
            public void solve() {
                int n = scanner.nextInt();
                int result = 0;
                for(int i=0; i<=n; ++i) {
                    if(i == 0) {
                        result += sumAll(1, n);             
                    } else {
                        result += sumAll(2*i, i+n);
                    } 
                }
                print.println(result);
            }
    
            private int sumAll(int n1, int n2) {
                return (n2*(n2+1) - n1*(n1-1)) / 2;
            }
        }
    }
    

    9년 전
1개의 댓글이 있습니다.
  • riceluxs1t
    riceluxs1t

    사실 정말 간단하게 생각한다면 python 기준
    sum = 0
    for i in range(0, N + 1): // 0부터 N까지,
    for j in range(i, N + 1) // i부터 N까지,
    sum = sum + i + j
    으로만 해도 하나의 인풋이기때문에 시간 제한안에 통과합니다.. 구지 수열의 합으로 계산 안해도


    9년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.