본문 바로가기

분류 전체보기

솔플 테트리스를 만들어보자 1 테트리스를 만들어보자 1 - 기반이 될 변수들과 맵, 블록을 그리는 함수 - 예전부터 한번은 만들자고 생각해왔던 간단한 프로젝트인 테트리스를 시작하겠다.오픈소스들과 모르는 함수같은 부분들을 많이 찾아보며 공부하며 이미 다른 분들이 만들어놓은 소스들을 뜯어보며 실행하며 얻은 것들로 재구성해보았다. 오늘의 포스팅은 테트리스에서 가장 기초가 될 변수들과 맵, 블록을 그리는 함수들을 설명하겠다. (우선 쓰인 헤드파일들과 정의, 기본 windows 함수들) 12345678910111213141516171819#include #include #include #include #define COL GetStdHandle(STD_OUTPUT_HANDLE) //주요 핸들(텍스트 색상 변경 시 쓰임) enum Color {..
최대공약수, 최소공배수 구하기 알고리즘(+약수 구하기) [최대공약수 / 최소공배수 알고리즘] 정보처리기사 실기 문제 중 한 가지인 최대공약수/최소공배수 알고리즘을 공부하면서 포스팅을 해 본다.보너스로 약수 구하는 알고리즘도 간단하게 남겨본다. 1. 최대공약수 (Greatest Common Divisor) 최대공약수는 0이 아닌 두 개 이상의 정수의 공통되는 약수이다. 보통 최대공약수를 구하라 하면이와 같이 그려서 구할 것이다. 하지만 프로그래밍 언어로 변환하여 나타내려면 어려울 것이다.따라서 프로그래밍 언어로 구현하고자 할 때는 다음과 같은 방법으로 나타낸다.이와 같이 두 수의 나머지값으로 최대공약수를 구할 수 있다. 글로만 봐서는 이해가 어려울 수 있으니 최대공약수를 구하는 함수와 같이 보자. 123456789101112131415161718//gdc : ..
[리스트] 리스트구조 - 연결리스트의 구현 다음으로 리스트 구현방법 중 하나인 연결 리스트를 알아보자 연결리스트는 동적으로 크기가 변할 수 있고, 삭제나 삽입 시 데이터를 이동할 필요가 없는 연결된 표현을 사용한다. 이 연결된 표현은 데이터와 링크(link)로 구성되어 있어 링크가 데이터들을 연결하는 역할을 한다.이러한 연결된 표현은 리스트에서만 쓰이는 것만 아니라 다른 자료구조인 스택, 큐, 트리 등에서도 많이 쓰인다. 연결 리스트에도 여러 모양이 있는데 대표적으로 단순 연결 리스트, 원형 연결 리스트, 이중 연결 리스트등이 있다.우선 단순 연결 리스트를 알아볼 것이다. 위 그림과 같은 모양으로 연결 리스트에는 데이터필드(data field)와 링크필드(link field)로 구성되어 있다. 데이터필드 : 우리가 저장하려 하는 데이터가 들어간다..
[리스트] 리스트구조 - 배열로 구성된 리스트 리스트 - 배열로 구성된 리스트 l 리스트 (list) : 항목들을 차례대로 나열하여 정리할 때 사용하는 자료구조 (ex) 리스트의 예한 주일의 요일들 (일요일, 월요일, ... , 토요일)한글 자음의 모음들 (ㄱ, ㄴ, ㄷ, ..., ㅎ)가드 한 벌의 값 (Ace, 2, 3, ..., King) 리스트를 구현하는 방법으로는1. 배열을 이용해 구현하는 방법2. 포인터를 이용하여 연결 리스트를 만드는 방법위 2가지가 있다. 먼저 배열로 구현한 리스트를 볼 것이다. 배열은 같은 형의 변수를 여러 개 만드는 경우에 사용되며, 항목을 저장할 수 있는 여러 개의 공간을 가진다. 이 공간들엔 인덱스 번호가 주어지고, 이 번호를 통해 접근할 수 있다. 위 그림의 배열은 7개의 상자가 있는데 저장된 항목들은 6개 (A..
[백준 1475] 방 번호 문제 1475번 방 번호 문제 문제 다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.) 입력 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 필요한 세트의 개수를 출력한다. 입력 예제 9999 출력 예제 2 이 문제는 얼마나 빨리 규칙을 찾고, 그 규칙을 어떤 방법으로 처리해 결과를 나타낼 것이냐에 따라 달린 문제이다. 규..
[백준 8958번] OX퀴즈 문제 : OX퀴즈 문제"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다."OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 입력첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 출력각 테스트 케이스마다 점수를 출력한다. 예제 입력5 OOXXOXXOOO OOXXOOXXOO OXOXOXOXOXOXOX O..
똥 피하기 (간단한 콘솔게임) (코드 저장겸 포스팅) 흔히들 아는 똥피하기게임을 만들어봤다.너무 급하게 만드느라 메뉴와 타이머도 만들지 못했다.(나중에 추가하여 올리겠다...) 우선 코드 저장 김에 작성하는 포스트라고 생각해야겠다. 헤드파일 Positions.h 1234567891011121314151617181920212223242526#include #include //적(피할 것)typedef struct{ int x; int y; //적의 상태 (TRUE, FALSE)로 컨트롤할 것 int con;}Enemy;//플레이어typedef struct{ int x;}Player; ////지정된 위치로 커서를 이동시키는 함수////void gotoxy(int x, int y){ //COORD : window.h에 있는 구조체, {SHORT x, SHORT ..
[백준 1152번] 단어의 개수 구하기 (문자열 문제) 단어의 개수 문제 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 들어가 있을까? 단 한 단어가 여러 번 들어가면 등장한 횟수만큼 모두 세어야 한다. 입력첫 줄에는 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000 을 넘지 않는다. 단어는 띄어쓰기로 구분한다. 공백이 연속으로 나오는 경우는 없다. 또한 문자열 앞, 뒤에는 공백이 있을 수 있다. 출력첫째 줄에 단어의 개수를 출력한다. 예시입력 : The Curious Case of Benjamin Button출력 : 6 이 문제를 접근한 방식으로는 1. 문자열에서 공백(띄어쓰기)의 개수를 받는다.2. 공백의 수 + 1 = 단어의 개수 간단한 문제이겠거니 생각했지만 생각..