티스토리 뷰

반응형

 

https://softeer.ai/practice/info.do?eventIdx=1&psProblemId=423 

 

Softeer

앗 잠깐만요! 소프티어 이용 중 이 페이지를 보신다면 브라우저의 쿠키 때문인 경우가 많습니다. 접속한 브라우저의 쿠키 삭제(Ctrl + Shift + Del) 후 브라우저를 닫고 다시 접속해주세요. 그래도 안

softeer.ai

[문제]

나날이 심해지는 미세먼지로 인해 야외뿐만 아니라 집 안에서도 마음 놓을 수 없는 날이 계속되고 있다. 유해 물질이 창문 틈새로 새어 들어오거나, 외출 후 옷과 신발 등에 붙어 들어와 집 안이 오염될 수 있기 때문이다. 현대자동차그룹에서는 입주민들이 미세먼지 걱정없이 집 안을 깨끗하게 유지할 수 있도록 세대 내부에도 H 클린알파(H Cleanα)를 도입했다. 미세먼지 제거와 공기 정화는 물론, 바이러스와 세균까지 잡아주는 기술이다.



H 클린알파의 성능 테스트를 위해서 아래와 같은 조건을 가정한다. 
  1) 1초 간격으로 바이러스들이 집 안으로 침입한다 
  2) 집 안에서 바이러스는 1초당 P배씩 증가한다 
  3) N초 동안 죽는 바이러스는 없다 

매초 집 안에 침입하는 바이러스의 숫자가 주어질 때, N초 후에는 총 몇 마리의 바이러스를 잡아야 할까? 

 

[풀이]

import java.util.*;
import java.io.*;


public class Main
{
   
	static int P; // 1<= P <= 100000000, 증가율
	static int N; // 1<= N <= 1000000, 시간
	static int[] A; // 1<= Ai <= 100000000, 매 초 침입하는 바이러스의 수
	static final int DIVIDE = 1000000007;
	static long RESULT = 0;
	
	public static void main(String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		P = Integer.parseInt(st.nextToken());
		N = Integer.parseInt(st.nextToken());
		
		A = new int[N];
		
		st = new StringTokenizer(br.readLine());
		
		for (int i = 0; i < N; i++)
		{
			A[i] = Integer.parseInt(st.nextToken());
			RESULT = (RESULT * P + A[i]) % DIVIDE;
		}
		
		System.out.println(RESULT);
		
		br.close();
	}

}
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함