인프런 커뮤니티 질문&답변

류재정님의 프로필 이미지

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

04-03 매출액의 종류 System.out.printf

작성

·

328

0

04-03 매출액의 종류 문제를 풀던 중,

System.out.print() 로 출력하면 정답 처리가 되던 부분이

System.out.printf()로 출력 할 경우 time exceed 처리가 됩니다.

System.out.printf()의 문제인지 궁금합니다..

 

 

아래는 타임아웃된 소스코드인데,

강의자료에서 출력문만 변경 한 것입니다.

 

========================================================

 

 

import java.util.*;

class Main {

public ArrayList<Integer> solution(int n, int k, int[] arr){

ArrayList<Integer> answer = new ArrayList<>();

HashMap<Integer, Integer> HM = new HashMap<>();

for(int i=0; i<k-1; i++){

HM.put(arr[i], HM.getOrDefault(arr[i], 0)+1);

}

int lt=0;

for(int rt=k-1; rt<n; rt++){

HM.put(arr[rt], HM.getOrDefault(arr[rt], 0)+1);

answer.add(HM.size());

HM.put(arr[lt], HM.get(arr[lt])-1);

if(HM.get(arr[lt])==0) HM.remove(arr[lt]);

lt++;

}

return answer;

}

public static void main(String[] args){

Main T = new Main();

Scanner kb = new Scanner(System.in);

int n=kb.nextInt();

int k=kb.nextInt();

int[] arr=new int[n];

for(int i=0; i<n; i++){

arr[i]=kb.nextInt();

}

for(int x : T.solution(n, k, arr)) System.out.printf("%d", x);

}

}

답변 1

0

"%d" => 12345678
"%d " => 1 2 3 4 5 6 7 8
이라서 그런거 아닐까요??
근데 왜 time exceed인지는 모르겠네요

류재정님의 프로필 이미지
류재정
질문자

앗 오탈자입니다 ㅎㅎ; 실제로는 공백을 두고 진행하였습니다.