[백준 / C++] N과 M (8)(실버3, 15657)
·
코딩테스트/백준 (Study)
https://www.acmicpc.net/problem/15657 문제N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다.N개의 자연수 중에서 M개를 고른 수열같은 수를 여러 번 골라도 된다.고른 수열은 비내림차순이어야 한다.길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다.입력첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다.출력한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으..
[UE Team Project/T.A.] 1. 팀 구성 및 프로젝트 초기화
·
프로젝트/TimelessAdventure
개요안녕하세요, 이번 포스팅에서는 청년취업사관학교(SeSAC)에서 수강한 언리얼 엔진 과정 2번째 팀 프로젝트에 대해 이야기해보려 합니다.프로젝트 개요 및 특이점이번 프로젝트는 'TimelessAdventure' 라는 어드벤처 장르의 자작 게임을 만드는 것이 목표로 했습니다. 특이한 점은 4명이서 같이 하는 팀 프로젝트지만 모든 작업을 팀원과 경쟁하는 구도로 구현하며, 잘 된 결과물을 하나 선택하여 합쳐야 하는 서바이벌(?) 프로젝트라는 점입니다. 즉, 누가 잘할지 모르니 모두 타인의 코드와 자신의 코드를 명확하게 해석해야 하며, 최대한 컴포넌트 기반의 기능 구현으로 합치는 과정에서 문제가 생기지 않도록 해야하는 신기한 프로젝트를 진행하게 되었습니다.게임 흐름 차트시간을 중심으로 꿈에서 탈출하기 위한 모..
[백준 / C++] 스도쿠(골드4, 2580)
·
코딩테스트/백준 (Study)
https://www.acmicpc.net/problem/2580문제스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 일부 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈 칸을 채우는 방식은 다음과 같다.각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다.굵은 선으로 구분되어 있는 3x3 정사각형 안에도 1부터 9까지의 숫자가 한 번씩만 나타나야 한다.위의 예의 경우, 첫째 줄에는 1을 제외한 나머지 2부터 9까지의 숫자들이 이미 나타나 있으므로 첫째 줄 빈칸에는 1이 들..
[백준 / C++] N-Queen(골드4, 9663)
·
코딩테스트/백준 (Study)
https://www.acmicpc.net/problem/9663문제N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (1 ≤ N 출력첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다.예제 입력 18예제 출력 192문제 풀이이번 문제의 핵심은 실행 시간을 줄이는 것입니다. 저의 경우 처음에 N x N 크기의 2차원 배열을 만들어서 이중 for문(y, x)을 돌며 퀸을 놓을 수 있는 위치를 체크하는 방식으로 구현하였으나, 14를 테스트해본 결과 출력이 너무 느려서 로직을 바꿔야 겠다고 생각하게 되었습니다. 결국 N x N 크기의 배열에 ..
[백준 / C++] 로또 (실버2, 6603)
·
코딩테스트/백준 (Study)
문제독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다.로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다.예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ..., [3,5,8,13,21,34])집합 S와 k가 주어졌을 때, 수를 고르는 모든 방법을 구하는 프로그램을 작성하시오.입력입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 ..
[UE Team Project/Issac 3D] 5. 프로젝트 마무리 (최종)
·
프로젝트/Isaac 3D
정리청년취업사관학교(SeSAC)에서의 첫 C++ 프로젝트를 마무리 짓게 되었습니다. (08.27 - 09.05) SeSAC의 가장 큰 장점 중 하나가 이렇게 공부한 내용을 즉시 적용해보라는 의미로 짧은 기간의 프로젝트를 랜덤한 팀으로 구성해서 진행해보는 것이라고 생각합니다.  전체 기간은 2주일 정도지만, 저는 개인적인 일정으로 인해 2일 늦게 시작하게 되어 약 1주일간 목표했던 부분에 대해 구현하는 시간을 보냈으며, 팀원들 중 협업을 처음 경험해보시는 분들이 많아서 많은 사건 사고가 있었던 1주일이라고 생각합니다. 개인적으로 전체 프로젝트를 진행하며 아쉬웠던 점을 정리해보면 다음과 같습니다.원작 게임이 2D 기반의 게임이라 3D 모델 및 애니메이션을 구할 수가 없었다.N x M의 크기를 동적으로 생성할..
[UE Team Project/Issac 3D] 4. 미니맵 UI 제작
·
프로젝트/Isaac 3D
개요이전 포스팅까지 랜덤한 맵의 구조를 생성하는 것에 대해 정리하였습니다. 이번에는 랜덤하게 생성된 방에 맞춰 알맞는 미니맵을 제작하는 방법에 대해 정리해보도록 하겠습니다.미니맵 구현 아이디어결과적으로 목표는 던파의 미니맵과 같은 형태를 제작하는 것이였으며, 최대한 비슷하게 제작해보기 위해 노력했습니다. 이전 포스팅에서 방의 정보를 Dungeon Generator Component에서 TArray로 관리하고 있기에 해당 정보를 사용해 미니맵에 알맞는 이미지를 넣기로 생각했습니다. 즉, 방의 모든 문이 열렸다면(OpenDir = 1 1 1 1)  4방향 이미지로 해당 칸을 채우는 방식으로 구현하게 되었습니다. 또한, 처음부터 미니맵이 전부 열려있지 않게 하기 위해서 미니맵 이미지 위에 더미 이미지를 두어 ..
[백준 / C++] 토마토 (골드5, 7569)
·
코딩테스트/백준 (Study)
https://www.acmicpc.net/problem/7569문제철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토에 인접한 곳은 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 여섯 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이..