백준 14500번 : 테트로미노
·
c++/백준
문제 링크 : https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누 www.acmicpc.net 알고리즘 1. 테트로 미노중 'ㅏ' 모양을 제외하고는 깊이 4인 dfs나 bfs 로 표현가능하므로 'ㅏ' 모양을 제외..
백준 2841번 외계인의 기타연주
·
c++/백준
문제 링크 https://www.acmicpc.net/problem/2841 2841번: 외계인의 기타 연주 문제 상근이의 상상의 친구 외계인은 손가락을 수십억개 가지고 있다. 어느 날 외계인은 기타가 치고 싶었고, 인터넷에서 간단한 멜로디를 검색했다. 이제 이 기타를 치려고 한다. 보통 기타는 1번 줄부터 6번 줄까지 총 6개의 줄이 있고, 각 줄은 P개의 프렛으로 나누어져 있다. 프렛의 번호도 1번부터 P번까지 나누어져 있다. 멜로디는 음의 연속이고, 각 음은 줄에서 해당하는 프렛을 누르고 줄을 튕기면 연주할 수 있다. 예를 들면, 4번 줄의 8번 프렛을 누 www.acmicpc.net 알고리즘 1. 배열 스택 생성하여서 그줄에 맞게 플랫을 push 1)줄에 맞는 스택의 top이 프랫보다 클 경우 작..
백준 5397 키로거
·
c++/백준
문제링크 https://www.acmicpc.net/problem/5397 5397번: 키로거 문제 창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다. 키로거� www.acmicpc.net 알고리즘 스택 을 두개 만듭니다 하나는 문자열을 입력받는 스택 하나는 '' 등을 수행할 때 보조 하는 스택. left 함수는 문자열 스택이 !empty 일때, 문자열 스택의 top 을 보조 스택에 push 하고 pop right 함수는 보조 스택이 !empty 일때, 보조 스택의 top 을 문자열 스택에 push 하고 pop 1. 문자열에서 '' 가 입력되면 right 함수실행 3. 문자열에서 '-' 가..
백준 2493번 : 탑
·
c++/백준
문제 링크 입니다 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 이상 100,000,000 이하의 정수이다. www.acmicpc.net 스택을 이용하는 문제였는데 잘 한건지 모르겠네요. 처음에 그래서 스택을 무조건 써야겠다고 생각해서 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ..
백준 10799번 쇠막대기
·
c++/백준
문제링크: https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저� www.acmicpc.net 알고리즘 스택 사용 . 1. 문자열에서 문자가 '(' 일 대 다음 문자가 ')' 이면 현재 스택의 사이즈만큼 갯수 증가 (레이져) 2. 문자열에서 문자가 ')' 일 때 이전 문자가 '(' 이면 continue ; (레이져) 3. 문자열에서 문자가 ')'이고 이전 문자가 '(' 가아니면 스택을 pop 하고 갯수 한개 증가 4. 갯수 출력 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 ..
백준 1918번 후위표기식
·
c++/백준
문제링크 : https://www.acmicpc.net/problem/1918 알고리즘 1. 문자면 출력값에 더해주고 여는 괄호면 스택에 push , 닫히는 괄호면 스택이 비거나 top이 여는 괄호 일 때까지 pop 하면서 출력값에 더해줌. 2.사칙연산을 처리 해준다. 코드 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include#include using namespace std; int main() { string str; cin >> str; string result; stack s; for (int i = 0; i
ariz1623
코딩의 숲