728x90

문제 178. (2022-02-08)

 

 

21921번: 블로그

첫째 줄에 $X$일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다. 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다

www.acmicpc.net

Baekjoon 21921. 블로그

[파이썬(python) 풀이]

찬솔이는 블로그를 시작한 지 벌써 $N$일이 지났다.

요즘 바빠서 관리를 못 했다가 방문 기록을 봤더니 벌써 누적 방문 수가 6만을 넘었다.
찬솔이는 $X$일 동안 가장 많이 들어온 방문자 수와 그 기간들을 알고 싶다.

찬솔이를 대신해서 $X$일 동안 가장 많이 들어온 방문자 수와 기간이 몇 개 있는지 구해주자.

 


입력

첫째 줄에 블로그를 시작하고 지난 일수 $N$와 $X$가 공백으로 구분되어 주어진다.

둘째 줄에는 블로그 시작 $1$일차부터 $N$일차까지 하루 방문자 수가 공백으로 구분되어 주어진다.

 


출력

첫째 줄에 $X$일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다.

만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다.

 


입력 예시

5 2
1 4 2 5 1

 


출력 예시

7
1

 


❧ 정답

 

 

 

  • _sum : 구간합을 저장한다.
  • _max : 구간합의 최대값을 저장한다.
  • cnt : 동일한 방문자 수가 몇 번 등장했는 지 센다.

 

[Line 7 - 14]
👉 인덱스를 하나씩 움직이며 해당 구간의 합을 구하며 _max와 비교한다.
👉 만약 새로운 구간합 _sum_max보다 크다면 _max 값을 갱신하고 cnt를 1로 설정한다.
👉 혹은 새로운 구간합 _sum_max와 같다면 동일한 방문자 수가 등장한 날이므로 cnt의 값을 '1'올려준다.

 

[Line 16]
👉 _sum == 0 : 계속해서 방문자 수가 0인 경우 이므로 'SAD'를 출력한다.

 

💡 파이썬에서의 삼항 연산자

[if문 실행문] if [조건문] else [else문 실행문]
728x90