[C++] 백준 6603번: 로또

2023. 7. 15. 18:12· Koala - 11기/코딩테스트 준비 스터디
목차
  1. 1. 문제 풀이
  2. 2. C++ 코드

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

 

6603번: 로또

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로

www.acmicpc.net

1. 문제 풀이

 집합 S에 존재하는 로또 번호 중 6개의 번호를 선택하여 나열하는 모든 순열의 수를 완전 탐색을 이용하여 구하였다. 집합 S에서 6개의 원소를 선택하여 나열하기 위해, 집합 S의 개수만큼 0으로 채워진 벡터 V를 만들고, 0부터 5번째 인덱스까지 1을 채운다. 그 후, algorithm 헤더 파일의 prev_permutation 함수를 사용하여 벡터 V의 모든 순열의 수를 탐색한다. 벡터 V를 탐색할 때 원소가 1인 경우, 그 인덱스에 해당하는 집합 S의 원소를 출력한다. 반복문을 돌면서 출력되는 예는 다음과 같다.

- 1번째 탐색
S = {1, 2, 3, 5, 8, 13, 21, 34}
V = {1, 1, 1, 1, 1, 1, 0, 0}
출력: 1 2 3 5 8 13

- 2번째 탐색
S = {1, 2, 3, 5, 8, 13, 21, 34}
V = {1, 1, 1, 1, 1, 0, 1, 0}
출력: 1 2 3 5 8 21

- 마지막 탐색
S = {1, 2, 3, 5, 8, 13, 21, 34}
V = {0, 0, 1, 1, 1, 1, 1, 1}
출력: 3 5 8 13 21 34

2. C++ 코드

#include <iostream>
#include <algorithm>
#include <vector>
#include <stdio.h>

using namespace std;

int main(void)
{
	int k;
	while (1) {
		scanf("%d", &k);
		if (k == 0) {
			break;
		}
		vector<int> s(k), v(k);
		for (int i = 0; i < k; i++) {
			scanf("%d", &s[i]);
			if (i < 6) {
				v[i] = 1;
			}
		}
		do {
			for (int i = 0; i < k; i++) {
				if (v[i] == 1) {
					printf("%d ", s[i]);
				}
			}
			printf("\n");
		} while (prev_permutation(v.begin(), v.end()));
		printf("\n");
	}
	
	return 0;
}
저작자표시 (새창열림)

'Koala - 11기 > 코딩테스트 준비 스터디' 카테고리의 다른 글

[프로그래머스/Java] 수식 최대화 lv2  (0) 2023.07.16
[백준/C++] 13423번 : Three Dots  (0) 2023.07.16
[백준/C++] 1436번: 영화감독 숌  (0) 2023.07.15
[백준 / Python] #14888 연산자 끼워넣기  (0) 2023.07.14
[백준/C++] 1018 체스판 다시 칠하기  (0) 2023.07.13
  1. 1. 문제 풀이
  2. 2. C++ 코드
'Koala - 11기/코딩테스트 준비 스터디' 카테고리의 다른 글
  • [백준/C++] 13423번 : Three Dots
  • [백준/C++] 1436번: 영화감독 숌
  • [백준 / Python] #14888 연산자 끼워넣기
  • [백준/C++] 1018 체스판 다시 칠하기
KauKoala
KauKoala
항공대 알고리즘 동아리 Koala 🥰
KauKoala
Koala
KauKoala
전체
오늘
어제
  • 분류 전체보기 (1888)
    • 공지 게시판 (10)
    • 정보 게시판 (8)
    • Codeforce (15)
    • acm-icpc (6)
    • Koala - 1기 (16)
    • Koala - 2기 (111)
      • Programming Contest (1)
      • A반 (20)
      • B반 (39)
      • C반 (22)
      • 기초 강의 (18)
    • Koala - 3기 (10)
      • 기초 스터디 (7)
    • Koala - 4기 (67)
    • Koala - 5기 (144)
      • 기초 알고리즘 스터디 (75)
      • 코딩테스트 준비 스터디 (68)
    • Koala - 6기 (102)
      • 기초 알고리즘 스터디 (75)
      • 코딩테스트 준비 스터디 (25)
      • 모의 테스트 스터디 (1)
    • Koala - 7기 (167)
      • 기초 알고리즘 스터디 (97)
      • 코딩테스트 준비 스터디 (68)
      • 모의 테스트 스터디 (1)
    • Koala - 8기 (44)
      • 기초 알고리즘 스터디 (32)
      • 코딩테스트 준비 스터디 (10)
      • 코드포스 버츄얼 스터디 (0)
      • 프로그래머스 LV2 스터디 (0)
    • Koala - 9기 (205)
      • 기초 알고리즘 스터디 (138)
      • 코딩테스트 준비 스터디 (64)
      • 모의테스트 준비 스터디 (1)
    • Koala - 10기 (117)
      • 기초 알고리즘 스터디 (30)
      • 코딩테스트 준비 스터디 (86)
      • 모의테스트 준비 스터디 (1)
    • Koala - 11기 (151)
      • 기초 알고리즘 스터디 (46)
      • 코딩테스트 준비 스터디 (104)
      • 모의테스트 준비 스터디 (1)
    • Koala - 12기 (86)
      • 기초 알고리즘 스터디 (31)
      • 코딩테스트 준비 스터디 (55)
    • Koala - 13기 (119)
      • 기초 알고리즘 스터디 (52)
      • 코딩테스트 준비 스터디 (67)
    • Koala - 14기 (116)
      • 기초 알고리즘 스터디 (39)
      • 코딩테스트 준비 스터디 (77)
    • Koala - 15기 (138)
      • 기초 알고리즘 스터디 (73)
      • 코딩테스트 준비 스터디 (65)
    • Koala - 16기 (47)
      • 코딩테스트 기초 스터디 (16)
      • 코딩테스트 심화 스터디 (31)
    • Koala - 17기 (62)
      • 코딩테스트 기초 스터디 (15)
      • 코딩테스트 심화 스터디 (47)
    • Koala - 18기 (31)
      • 코딩테스트 기초 스터디 (11)
      • 코딩테스트 심화 스터디 (20)
    • Koala - 19기 (42)
      • 코딩테스트 기초 스터디 (7)
      • 코딩테스트 심화 스터디 (35)
    • Koala - 20기 (0)
      • 코딩테스트 기초 스터디 (0)
      • 코딩테스트 심화 스터디 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 🐨항공대 알고리즘 학회 Koala 3기 모집
  • 🐨항공대 알고리즘 학회 Koala 2기 모집
  • 소모임 소개

인기 글

태그

  • 백트래킹
  • C++
  • BOJ
  • dfs
  • 백준
  • dp
  • BFS
  • 파이썬

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.3.0
KauKoala
[C++] 백준 6603번: 로또
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.