-
[NYPC2016_예선문제] 마비노기 듀얼: 올바른 덱인가요?프로그래밍/알고리즘 2017. 12. 2. 21:45
문제
풀이
1234567891011121314151617181920212223242526272829303132333435363738//마비노기 듀얼: 올바른 덱인가요?#include <stdio.h>#include <string.h>struct resource{int gold, mana, light, dark, nature;};struct resource counter={0,0,0,0,0};int main(){int n;scanf("%d", &n);char deck[n][10];for(int i=0; i<n; i++) scanf("%s", &deck[i]);for(int i=0; i<n; i++){if(strcmp(deck[i], "gold")==0) counter.gold++;else if(strcmp(deck[i], "mana")==0) counter.mana++;else if(strcmp(deck[i], "light")==0) counter.light++;else if(strcmp(deck[i], "dark")==0) counter.dark++;else if(strcmp(deck[i], "nature")==0) counter.nature++;else{printf("invalid");return 0;}}int none=0;if(counter.gold==0) none++;if(counter.mana==0) none++;if(counter.light==0) none++;if(counter.dark==0) none++;if(counter.nature==0) none++;if(none>=2){printf("valid");return 0;}else{printf("invalid");return 0;}}cs 설명
resource: 구조체
counter: 덱이 소모하는 자원의 수를 세기위한 카운터(resource 구조체 변수)
n: 카드의 수 N
deck: 덱이 소모하는 자원을 저장할 문자열 배열
none: 덱에서 소모하지 않는 자원의 개수를 세기 위한 변수i: 반복문에 사용
-----
자원을 입력받다가 5종류의 자원이 아닌 이상한 자원이 나왔다면 얼릉 invalid 출력하고 종료함
이제 덱에서 소모하지 않는 자원 하나당 none 변수의 값을 하나씩 늘려줌
덱에서 소모하지 않는 자원이니까, 그 값이 2 이하라면, 그 덱은 유효하지 않은 덱(덱은 최대 세 종류의 자원을 섞어서 구성되어야 하므로)
이에 따라 따라서 valid, invalid 출력해줌.2017.08
'프로그래밍 > 알고리즘' 카테고리의 다른 글
문제적남자 131회 - 로꾸꺼 (0) 2017.12.05 [NYPC2017_문제풀이] 알사탕 (2) 2017.12.02 [NYPC2016_예선문제] 넥슨은 다람쥐를 뿌려라 (0) 2017.12.02