전체 글
-
아희PS - solved.ac 빼빼로데이 이벤트 후기(+4문제 간단한 풀이, 최고 티어: GOLD I)아희 2022. 2. 1. 02:15
11월 11일 빼빼로데이를 기념해 solved.ac에서는 이벤트를 하나 했다. Gold 문제를 풀면 막대기를 하나 주고, Bronze/Silver/Platinum+Daimond/Ruby를 풀면 초코/화이트/민트/루비(?) 초콜릿을 주고, 같은 종류의 초콜릿 3개와 막대기를 조합해 빼빼로를 만드는 이벤트였다. BOJ 공식 아희 2위인 sciencepark이 이 이벤트를 그냥 지나칠 리 없었고, 나는 이 이벤트의 목표를 '아희만으로 빼빼로 하나 만들기'로 잡았다. Bronze를 3개 풀고, Gold를 1개 풀면 되는 것이었다. 그리고 나는 목표를 빼빼로데이 당일날 몇 시간 안에 해냈다. 이때 푼 문제들에 대해 간단하게 소개해보겠다. 13985번: Equality(Bronze IV) 1 + 2 = 3과 같은 ..
-
아희PS - BOJ 22904 오렌지 수(Platinum III)아희 2021. 10. 20. 21:04
이번에 알아볼 문제는 '오렌지 수'라는 문제이다. 문제 링크: https://www.acmicpc.net/problem/22904 (1) ㅋㅋㅋㅋ받반타타밡랴뿌처-->(2) ㅋㅋㅋㅋ해석멍터벋번머ㅋ 수를 입력받은 뒤에 복사하고, 9로 나눈 나머지에 따라 분기가 일어난다. 0이라면 (1)로, 1을 뺀 뒤 0이라면 (2)로 진행하며, 아니라면 -1을 출력하고 프로그램을 종료한다. 이제 (1)과 (2)로 나가는 부분에서 어떤 일이 일어나는지를 살펴보자. 아래의 코드는 (1)에 이어지는 코드이다. 밡나카카카카빠밡망받반타타뺘쿠처발발다맣밡받따망마받반타타빠밡망받반타타뺘쿠처발발다맣밡밭따망마밡망받반타타뺘쿠처삭해 ㅋㅋㅋㅋㅋㅋㅋ코커커커커커커커ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ코커커커커커커커ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ코커커커커커커커 위에서 (1..
-
아희PS - BOJ 2749 피보나치 수 3(Gold II)아희 2021. 8. 13. 11:51
피보나치 수열이란 \(F_0=0, F_1=1, F_n=F_{n-1}+F_{n-2} (n \geq 2) \)을 만족하는 수열이다. PS를 하는 사람들에게는 상당히 익숙한 수열이며, 이를 응용한 문제들도 여럿 있다. 이번 글에서는 아희를 이용하여 피보나치 수열을 구하는 방법에 대해 다루려고 한다. 더 정확히 말하면, 자연수 \(n\)이 주어졌을 때 \(n\)번째 피보나치 수 \(F_n\)을 출력하는 아희 코드를 설명하려고 한다. 문제 링크: https://www.acmicpc.net/problem/2749 2749번: 피보나치 수 3 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net \(O(N)\) 코드 피보나치 수를 구하..
-
결!합! C++로 만들기-게임 플레이게임개발 2021. 7. 14. 11:25
모든 빌드업이 끝났기 때문에, 이제 게임을 시작할 것이다. 우선, 긴장감을 유발하기 위한 카운트다운이 시작된다. clear(); printf("3"); Sleep(1000); clear(); printf("2"); Sleep(1000); clear(); printf("1"); Sleep(1000); clear(); 그 뒤, 몇 가지 사전 초기화 과정을 거친다. findedanswer.clear(); t = 999; score = 0; makenewboard(); findhap(); printboard(); gotoxy(0, 15); printf("남은 시간: 초\n점수: 0000점"); 게임판 생성, 남은 시간과 점수 초기화 등이 이루어진다. 이제 시간을 점점 줄이면서, 다음 과정이 진행된다. while..
-
결!합! C++로 만들기-결!합! 시스템게임개발 2021. 5. 10. 21:03
타이틀을 만들었고, 게임 진행 부분을 만들기 전에 게임판을 만들고, '합'을 찾고, 몇 가지 그래픽적인 사항을 먼저 구현할 필요가 있었다. 그렇기에 오늘은 이것을 다루도록 하겠다. 우선, 게임판을 만들어야 하는데, space, txt, shape라는 3*3 배열 3개를 만들었다. 이는 각각 배경색, 글자색, 모양을 의미한다. int space[3][3], txt[3][3], shape[3][3]; makenewboard 함수를 호출하면, 저 3개의 배열이 랜덤으로 지정된다. 각각 종류가 3개이므로, 0~2의 값이 들어간다. 또한, 중복을 피하기 위한 코드도 작성한다. void makenewboard() { srand((int)time(NULL)); bool b; int k; for (int i = 0; ..
-
결!합! C++로 만들기-로비, 게임 설명/설정게임개발 2021. 4. 2. 15:59
결!합!은 더 지니어스에 나온 게임이다. 1:1 매치지만, 서버를 팔 수는 없는 노릇이기에 1인용으로 각색하게 되었다. 규칙은 다음 링크를 참고하자(실제 게임 설명도 저렇다) www.acmicpc.net/problem/16722 16722번: 결! 합! 위 입력에서 '합'을 이루는 모든 그림 조합은 (1,5,6), (2,3,5), (2,4,6), (2,7,9), (6,8,9) 5가지가 있다. www.acmicpc.net 다만 더 지니어스의 숫자 번호와 키보드의 숫자 번호 배열이 다르기 때문에, 다음과 같은 대체 문자를 사용하였다. qwe asd zxc 그냥 키보드 왼쪽 3줄이다. 그리고 charcode라는 배열에 이들 각각의 번호 코드를 저장하였다. for (int i = 0; i < 26; i++)ch..
-
게임개발 1-많이 쓰는 기능들게임개발 2021. 2. 27. 10:39
헤더 일단 windows.h는 무조건 넣는다. 아래의 필수 함수들 중에서 대부분이 windows.h에 있는 함수들이다. 물론 입출력용으로 cstdio나 iostream을 안넣으면 망한다. 그래픽을 신경쓴다면 색을 넣기 위해 conio.h도 넣도록 하자. 그 외 필요한 기능을 넣어주면 된다(내가 쓰는 visual studio에는 bits/stdc++.h가 없다) 필수 이미 있는 함수들 1. Sleep() 말 그대로 잠시 주무시는 것이다. 이 동안은 아무 것도 하지 않는다. 너무 빨리 지나가버리면 볼 수가 없기 때문에 약간의 딜레이가 필요한 순간은 분명히 온다. Sleep(1000)의 경우 1000ms를 주무신다. 2. system("cls") 화면을 모조리 지워버리는 함수이다. 이를 외우기 귀찮았기에 cl..
-