-
7088. 은기의 송아지 세기Algorithm/SWExpertAcademy 2020. 2. 20. 22:32
LEVEL D4
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWkIeU76A9cDFAXC
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
a, b 구간의 송아지의 품종들의 갯수를 구하는 문제이다.
품종은 (1, 2, 3)으로 나뉜다.
품종을 입력 받으면서 누적값을 구해나갔다.
b구간의 누적값 - (a - 1)구간의 전의 구간의 누적값을 구하여 문제를 해결하였다.
* map의 0번 인덱스는 항상 0이기 때문에 다음 TestCase에 진입하여도 0으로 시작하기 때문에 map을 초기화하지 않아도 상관없었다.
소스코드
더보기#include<stdio.h> #include<string.h> int map[3][100001]; int N, Q; int main() { int T; scanf("%d", &T); for (int tc = 1; tc <= T; tc++) { scanf("%d %d", &N, &Q); for (int i = 1; i <= N; i++) { int n; scanf("%d", &n); if (n == 1) { map[0][i] = map[0][i - 1] + 1; map[1][i] = map[1][i - 1]; map[2][i] = map[2][i - 1]; } else if (n == 2) { map[0][i] = map[0][i - 1]; map[1][i] = map[1][i - 1] + 1; map[2][i] = map[2][i - 1]; } else { map[0][i] = map[0][i - 1]; map[1][i] = map[1][i - 1]; map[2][i] = map[2][i - 1] + 1; } } printf("#%d\n", tc); for (int i = 0; i < Q; i++) { int n1, n2; scanf("%d %d", &n1, &n2); printf("%d %d %d\n", map[0][n2] - map[0][n1 - 1], \ map[1][n2] - map[1][n1 - 1], \ map[2][n2] - map[2][n1 - 1]); } } }
'Algorithm > SWExpertAcademy' 카테고리의 다른 글
3135. 홍준이의 사전놀이 (0) 2020.02.22 1247. [S/W 문제해결 응용] 3일차 - 최적 경로 (0) 2020.02.22 7792. 반장 선출 (0) 2020.02.20 9480. 민정이와 광직이의 알파벳 공부 (0) 2020.02.18 7733. 치즈 도둑 (0) 2020.02.18