[1713] 후보 추천하기, C

2019. 7. 15. 18:18·DEV/PS

https://www.acmicpc.net/problem/1713

 

1713번: 후보 추천하기

첫째 줄에는 사진틀의 개수 N이 주어진다. (1≤N≤20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대로 주어진다. 총 추천 횟수는 1,000번 이하이며 학생을 나타내는 번호는 1부터 100까지의 자연수이다.

www.acmicpc.net

한줄 후기: 이것도 초등부 1번문제 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ^,^ 짜증나

 

 

 

멍청하게 자꾸 다 해놓고 조건 하나 잘못 코딩해서 네번만에 성공 ^^

 

#include <stdio.h>
typedef struct{
	int cnt;
	int order;
	int candidate;
}CAND;
CAND can[22]={0};
int check[101] = {0};
int add(int p, int j);
int new_add(int p);
int che=1, n, num;
int main(){
	int i, p;
	scanf("%d %d", &n, &num);
	for(i=1; i<=num; i++){
		scanf("%d", &p);
		if(check[p])	new_add(p);
		else{
			add(p,i);
		}
	}
	for(i=1; i<=100; i++){
		if(check[i])	printf("%d ", i);
	}
}
int add(int p, int j){
	int min, i, temp=1, min2;
	if(che <= n){
		che++;
		for(i=1; i<=n; i++){
			if(can[i].candidate == 0){
				can[i].candidate = p;
				can[i].cnt++;
				can[i].order = j;
				check[p] = 1;
				break;
			}
		}
	}
	else{
		min = can[1].cnt;
		min2 = can[1].order;
		for(i=2; i<=n; i++){
			if(min > can[i].cnt){
				temp = i;
				min2 = can[i].order;
				min = can[i].cnt;
			}
			else if(min == can[i].cnt){
				if(can[i].order < min2){
					temp = i;
					min2 = can[i].order;
				}
			}
		}
		check[can[temp].candidate] = 0;
		can[temp].candidate = p;
		can[temp].order = j;
		can[temp].cnt = 1;
		check[p] = 1;
	}
	return;
}
int new_add(int p){
	int i;
	for(i=1; i<=n; i++){
		if(can[i].candidate == p)	{
			can[i].cnt++;
			return;
		}
	}
}

  

사진틀이 꽉 찼을 때 추천횟수 적은 거 찾기까지 잘 했는데 추천횟수가 같을 때 더 오래된 사진을 찾고 ㅠ 바로 갱신해버려서 틀렸다. 바로 갱신이 아니라 혹시나 그 사진보다 더 뒤에 있는 사진틀에서 추천횟수가 더 작은 사진이 있을 수도 있다. 

혹여나 이것을 본다면,, 나처럼 바보같은 짓은 하지 않도록,,,

'DEV > PS' 카테고리의 다른 글

[15953] 상금 헌터, C  (0) 2019.07.15
[13163] 닉네임에 갓 붙이기, C  (0) 2019.07.15
[15904] UCPC는 무엇의 약자일까? , C  (0) 2019.07.05
[2841] 외계인의 기타연주, C  (0) 2019.07.04
[12790] Mini Fantasy War, C  (0) 2019.07.03
'DEV/PS' 카테고리의 다른 글
  • [15953] 상금 헌터, C
  • [13163] 닉네임에 갓 붙이기, C
  • [15904] UCPC는 무엇의 약자일까? , C
  • [2841] 외계인의 기타연주, C
jobchae
jobchae
말하는 감자지만, 코드를 끄적이는 Node.js 백엔드 개발자입니다.
  • jobchae
    JOBCHAE
    jobchae
  • 전체
    오늘
    어제
    • 🚀 JOBCHAE (182)
      • DEV (151)
        • PS (108)
        • Node.js (12)
        • React (3)
        • docker (1)
        • 잡다한 개발 일지 (21)
        • injection (1)
        • JS, TS (3)
        • DB (2)
      • 축구 (0)
      • 일상 (19)
      • 영화 (3)
      • 음악 (8)
  • 블로그 메뉴

    • 💻 Github
    • 🙋🏻 Linkedin
    • 📖 방명록
  • 링크

    • PS Github
  • 공지사항

  • 인기 글

  • 태그

    DP
    백준
    우선순위큐
    GitHub
    SOPT
    nodejs
    알고리즘
    Nest.js
    db
    이분탐색
    슬랙
    솝트
    PS
    react
    boj
    DFS
    개발
    Express
    위상정렬
    BFS
    JavaScript
    일상
    회고
    슬랙봇
    렛츠락페스티벌
    node.js
    typescript
    리액트
    mongoDB
    앱잼
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
jobchae
[1713] 후보 추천하기, C
상단으로

티스토리툴바