숫자 카드2(백준)
문제 이해
숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오.
나만의 이해
숫자를 주고 마지막줄에 주어진 숫자가 각 몇개인지 카운트하는 문제이다.
Python
import sys
from collections import Counter as ct
num = input()
read = ct(map(int, sys.stdin.readline().split()))
guess = input()
read2 = map(int, sys.stdin.readline().split())
for ele in read2:
print(read[ele],end = " ")
파이썬 collections 패키지를 사용하면 별로 어렵지 않다. Counter는 자동으로 dict 형태로 변환해주기 때문에 그냥 Counter로 만들고 해당 원소 갯수를 반환해주면 구현할수있다. print(ele, end = " ") 파이썬 3에는 자체적으로 print하면 줄바꿈 즉 end='\n'이 설정되어 있다. 저런식으로 바꿔주면 한칸씩 띄어진 상태로 프린트가 가능하다.
내가 사용하는 컴파일러는 파이썬 2.x여서 저 print가 안된다. 그럴때는 당황하지말고
from __future__ import print_function
이걸 추가해 주면 된다.
C++
#include <iostream>
#include <map>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int num;
cin>> num;
map<int,int> m;
for(int i=0; i<num; i++){
int intput;
cin >> intput;
m[intput]++;
}
cin >>num;
for(int i =0;i<num;i++){
int intput;
cin >> intput;
cout << m[intput]<<" ";
}
return 0;
}
cpp에서는 map이라는 객체를 사용하면 되는데, 쉽게 생각하면 python dict이랑 매우 유사하다. 저런식으로 m[intput] 접근하면 없으면 0, 있으면 +1 형식으로 만들어서 찾아준다.
Author And Source
이 문제에 관하여(숫자 카드2(백준)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@happyfran67/숫자-카드2백준저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)