본문 바로가기

<알고리즘 문제풀이&연습>/[C++] 백준68

[백준 10828] 스택 (C, C++ stack) 안녕하세요. BlockDMask 입니다. 오늘의 포스팅을 시작하도록하겠습니다.오늘은 기본 스택을 구현하는 문제입니다.C, C++ 두가지를 이용하여 풀었습니다.0. 제목백준 10828 스택BOJ 10828 스택1. 문제설명 정수를 저장하는 스택을 구현하는 문제입니다. push N : 정수 N을 스택에 넣습니다.pop : 스택의 맨 위의 정수를 빼고, 출력. 없는경우 -1 출력.size : 스택의 정수의 개수 출력.empty : 스택이 비어있으면 1, 아니면 0 출력.top : 스택의 가장 위의 정수를 출력, 없는경우 -1 출력 2. 풀이과정 C++ 은 STL 에서 stack이 구현 되어있기 때문에 구현되어있는 stack을 이용하였고, C는 직접 구현을 했습니다. 3. 함수설명 C++의 stack 의 멤버인.. 2017. 8. 1.
[백준 11050] 이항계수 1 (반복, 재귀) 안녕하세요. BlockDMask 입니다.비가 추적추적 내리는 월요일이네요. 오늘의 문제를 포스팅 해보겠습니다.0. 제목BOJ 11050 이항계수 1백준 11050 이항계수 1 C++ 이용해서 풀었습니다.1. 문제 설명 자연수 N과 정수 K가 주어졌을때, 이항계수 를 구하는 문제입니다. 2. 풀이 과정 이항계수( binomial coefficient ) 는 경우의 수를 계산할때 사용하는 것으로 알고있습니다.n개의 서로다른 것 들 중에서 k 개를 선택하는 것의 조합(combination)의 경우의 수를 구하는 것입니다. 는 로 나타내고 이는 으로 나타낼 수 있습니다. 팩토리얼(Factorial)은 반복문과 재귀 두가지 방법으로 표현 할 수 있기 때문에 두가지 방법 모두를 사용하여 풀어보았습니다. 3. 함수 .. 2017. 7. 31.
[백준 1157] 단어 공부 (map) 안녕하세요 BlockDMask 입니다.문자와 아스키 코드를 이용하는 문제입니다.최근 공부중인 STL을 사용해보았습니다.0) 제목BOJ 백준 1157번 "단어 공부" 문제입니다.C++ 을 이용하여 풀었습니다.1) 문제설명 알파벳이 대소문자 구분없이 쭉~~~! 주어지면그중, 가장 많이 쓰인 알파벳이 무엇인지 알아내는 문제.단, 대소문자 구분 없음.가장 많이 쓰인 알파벳을 대문자로 출력.만약 가장 많이 쓰인 알파벳이 여러개 라면 "?" 출력. 2) 풀이과정 STL에서 container를 요즘 공부하고있기 때문에, 이 문제를 보자마자 알파벳 및 횟수를 map의 로 만들면 되겠다라는 생각이 들었습니다. map을 이용하여 알파벳, 횟수를 map로 묶었습니다.대문자를 출력하기 위해서 소문자가 들어왔을때, 아스키 코드.. 2017. 7. 29.
[백준 2750] 수 정렬하기 (버블정렬, 삽입정렬) 안녕하세요! BlockDMask 입니다.오늘 푼문제는 버블정렬(Bubble Sort)과 삽입정렬(Insertion Sort)를 복습하는 마음으로 푼 문제였습니다.버블정렬과 삽입정렬 두 방법 으로 문제를 풀었습니다.0) 제목BOJ 2577 번 문제 " 수 정렬하기 " 입니다.C++ 을 이용해서 풀었습니다.1) 문제 설명숫자 n 이 입력되면그 n 개의 갯수만큼 숫자를 입력 받습니다.그 숫자들을 오름차순 순으로 정렬하여 출력합니다.2) 풀이과정bubble sort 와 insertion sort 두가지 다 이용해서 풀어보았습니다.3) 함수설명null 4) 코드 -> Bubble Sort123456789101112131415161718192021222324252627282930313233343536#include.. 2017. 7. 28.
[백준 1152] 단어의 개수 (strtok) 안녕하세요! BlockDMask 입니다.오늘은 문자열 관련해서 문제를 풀어 보았습니다.0) 제목 단어의 개수BOJ 1152 번 문제입니다.C++ 이용해서 풀었습니다. 1) 문제설명 띄어쓰기가 포함된 문장 최대 1,000,000 자 까지 입력이 됩니다.이중, 문자 가 몇개인지 인식하여서 출력하는 문제입니다. 2) 풀이과정 char 타입 배열로 문자열을 받아서. strtok 함수를 이용하여서 띄어쓰기를 기준으로 문자열을 나누었습니다. 3) 함수설명 주석에 달아놓았습니다추후 strtok 사용법에 대해 작성하겠습니다. 4) 코드 123456789101112131415161718192021222324#include#include#includeusing namespace std; int main(void){ cha.. 2017. 7. 27.
[백준 2577] 숫자의 개수 0) 제목 숫자의 개수BOJ의 2577 번 문제입니다.C++ 이용해서 풀었습니다. 1) 문제설명 세개의 세자리 자연수 A, B, C 가 주어집니다 A*B*C 한 결과에서0~9 까지의 숫자의 갯수가 각각 몇개인지 출력하는 문제입니다. 2) 풀이과정 세자리수 자연수 A*B*C 를 했을때 자릿 수를 생각해보면 999를 1000이라 생각하면 10^3 입니다. 이를 세번 곱하니 10^9 입니다. int가 4bytes 일때, 2^32 이니까. 2^10 == 10^3 이 세번이므로 2^30 == 10^9 과 비슷하다고 생각할 수 있습니다.그러므로 int 값 범위 안에서 해결이됩니다. 0~9 까지의 숫자를 카운트할 배열 arr을 만들고 0으로 초기화 합니다.세개의 자연수를 곱한 값을 10으로 나눈 나머지를 인식해서 해.. 2017. 7. 26.
[백준 11720] 숫자의 합 (아스키코드) 안녕하세요. BlockDMask 입니다.!!0) 제목 숫자의 합BOJ의 11720 번 문제입니다. 1) 문제설명 n개의 숫자가 띄어쓰기 없이 주어집니다.n개 의 숫자를 더해서 출력하면 되는 간단한 문제입니다. 2) 풀이과정 하나씩 받아야 하므로, char 타입으로 문자로 받았습니다.아스키 코드를 생각하여서'0' 을 빼서 int 타입으로 변환하여 합을 구했습니다. 3) 함수설명 간단하므로 생략하겠습니다. 4) 코드 12345678910111213141516#includeusing namespace std; int main(void){ int n; cin >> n; char ch; int sum =0; for(int i=0; i> ch; sum += (ch - '0'); } cout 2017. 7. 25.
[백준 14612] 김식당 (IUPC) 안녕하세요 BlockDMask입니다.백준 알고리즘 사이트를 알게되어서,문제를 풀고 게시하려 합니다.잘부탁드립니다.0) 제목- 2017 인하대학교 프로그래밍 경진대회(IUPC) A번 김식당 입니다.- C++을 이용하여 풀었습니다. 1) 문제설명 - 초기 값으로 N(입력될 쿼리의 갯수), M(테이블의 수)가 들어옵니다.- 쿼리의 종류로는 order [int][int] sort complete [int] 가 있습니다. 2) 풀이과정- order와 sort만 보고, 배열로 풀려고 했으나, 중간 값을 삭제하는 complete 가 주어져서, 배열은 삭제 후 재 배열을 해주어야 하기 때문에 complete에 맞지 않는다고 판단하였습니다.- 그래서 중간값을 삭제해 줄 수 있고, 자동으로 동적할당을 해주는 STL vec.. 2017. 7. 18.