PAT 문제 풀이 일기 B1023 조 개 최 소수
제목 설명
주어진 숫자 0 - 9 각각 몇 개 씩.너 는 이 숫자 들 을 임의의 순서 로 배열 할 수 있 지만, 반드시 전부 사용 해 야 한다.목 표 는 마지막 에 얻 은 숫자 를 가능 한 한 작 게 하 는 것 이다.예 를 들 어 0, 2 개 1, 3 개 5, 1 개 8 을 정 하면 우리 가 얻 은 가장 작은 수 는 10015558 이다.
현재 주어진 숫자 입 니 다. 프로그램 출력 으로 구 성 될 수 있 는 최소 수 를 작성 하 십시오.
입력 설명
입력 마다 테스트 용례 가 1 개 씩 포함 되 어 있 습 니 다.각 테스트 사례 는 한 줄 에 10 개의 비 마이너스 정 수 를 제시 하고 순 서 는 우리 가 숫자 0, 숫자 1,... 숫자 9 의 개 수 를 가지 고 있다 는 것 을 나타 낸다.정수 간 을 빈 칸 으로 나누다.10 개의 숫자의 총 개 수 는 50 을 넘 지 않 고 적어도 1 개의 0 이 아 닌 숫자 를 가지 고 있다.
출력 설명
한 줄 에서 구성 할 수 있 는 최소 수 를 출력 합 니 다.
입력 예
2 2 0 0 0 3 0 0 1 0
출력 예
10015558
사고의 방향
욕심 많은 알고리즘 을 이용 하여 0 이 아 닌 최소 수 를 첫 번 째 로 한 다음 나머지 수의 최소 수 를 순서대로 뒤에 놓 고 답 을 얻 을 수 있 습 니 다. (문자열 연결 문제 로 이해 할 수 있 습 니 다)
코드
#include
int main(int argc, const char * argv[]) {
int smallNumber[10];// 0-9
for (int i=0; i<10; i++) {
scanf("%d",&smallNumber[i]);
}
for (int i=1; i<10; i++) {
//
if (smallNumber[i]!=0) {
printf("%d",i);
smallNumber[i]--;
break;
}
}
for (int j=0; j<10; j++) {
//
for (int i=0; i<smallNumber[j]; i++) {
printf("%d",j);
}
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Linux Shell 프로 그래 밍 - 텍스트 처리 grep, sed사용자 가 지정 한 '모드' 에 따라 대상 텍스트 를 일치 하 게 검사 하고 일치 하 는 줄 을 인쇄 합 니 다. ##포함 되 지 않 음, 역방향 일치 \ ##키워드 앞 뒤 가 맞지 않 고 키워드 만 일치 합 니 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.