[백준][C] 2238 경매

2024. 10. 30. 01:04·공부하기/문제 풀기

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

파이썬을 사용하면 딕셔너리를 사용해 간단하게 구할 수 있을 것 같지만 C언어에는 직접 구현해야하므로 배열을 사용해 구하기로 했다.

일단 문제에서 주어진 조건은 다음과 같다.

  1. 가장 적은 수의 사람이 제시한 가격을 택한다.
  2. 사람의 수가 같을 경우 가장 낮은 가격을 택한다.
  3. 출력은 해당하는 가격을 제일 먼저 제시한 사람을 출력한다.

 

구현은 다음과 같은 방법으로 했다.

  1. 개수를 세는 cnt 배열을 통해 가격에 따른 개수를 센다 (cnt[가격] = 해당 가격의 개수)
  2. 가격을 낮은 값부터 돌며 사람의 수가 가장 적은 가격을 찾는다.
  3. 다시 사람을 돌며 위에서 찾은 가격과 일치하는 사람을 찾으면 출력하고 종료한다.

이때 for문이 낮은 값부터 돌기 시작하므로 제일 먼저 나오는 값이 최소값임을 이용한다.

밑은 C언어로 구현한 방법이다.

더보기
#include <stdio.h> 
#pragma warning(disable:4996)

char name[100000][11];
int U, N;
int P[100000];
int cnt[10001] = { 0 };

int main()
{
	scanf("%d %d", &U, &N);

	// 값을 입력받으면서 cnt 배열에 개수를 더해준다.
	for (int i = 0; i < N; i++)
	{
		scanf("%s %d", name[i], &P[i]);
		cnt[P[i]]++;
	}

	int min = 10000;
	int idx = 0;
	// 모든 가격을 순회하며 개수가 가장 적은 최소값을 찾는다.
	for (int i = 1; i <= U; i++)
	{
		if (cnt[i] == 0) continue;
		if (min > cnt[i])
		{
			min = cnt[i];
			idx = i;
		}
	}

	// 이제 다시 처음 배열을 돌며 해당하는 가격을 제시한 사람을 출력한다.
	for (int i = 0; i < N; i++)
	{
		if (idx == P[i])
		{
			printf("%s %d\n", name[i], P[i]);
			break;
		}

	}
	
	return 0;
}

 

'공부하기 > 문제 풀기' 카테고리의 다른 글

[백준][C] 1021번 회전하는 큐  (0) 2024.11.09
[백준][C] 1925번 삼각형  (0) 2024.11.08
[백준][C] 2748번 피보나치 수 2  (0) 2024.11.02
[백준][C] 2096번 내려가기  (0) 2024.11.01
[백준][C] 1735 분수의 합  (0) 2024.10.31
'공부하기/문제 풀기' 카테고리의 다른 글
  • [백준][C] 1925번 삼각형
  • [백준][C] 2748번 피보나치 수 2
  • [백준][C] 2096번 내려가기
  • [백준][C] 1735 분수의 합
Potan7
Potan7
그냥 내 맘대로 올리는 곳 프사 : 카미쵸(kyamicho) (먼지먼지(jominji1374) 수정)
  • Potan7
    Potan의 개발 블로그
    Potan7
  • 전체
    오늘
    어제
    • 분류 전체보기 (28)
      • 공부하기 (24)
        • 문제 풀기 (15)
        • 마인크래프트 모드 만들기 (8)
        • 유니티 (1)
      • 프로젝트 (4)
        • 마인크래프트 디스플레이 애니메이션 툴 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    유니티
    거듭제곱
    백준
    티스토리챌린지
    2238번
    백준 1735
    나머지
    c
    DynamicProgramming
    힙
    완전 이진 트리
    이진 트리
    알고리즘
    모드 개발
    파이썬
    백준 경매
    누적합
    네오포지
    백준 분수 합
    팩토리얼
    DP
    분수 합
    1735
    트리
    dfs
    백분
    오블완
    마인크래프트
    문제풀이
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Potan7
[백준][C] 2238 경매
상단으로

티스토리툴바