본문 바로가기

전체 글

(2344)
(C++) - 백준(BOJ) 1927번 : 최소 힙 답 www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이� www.acmicpc.net 힙(heap)자료구조를 사용하는 우선순위 큐(priority queue)를 사용하는 문제였습니다. 풀이방법 default가 less(내림차순 정렬, top은 현재 heap 중 가장 큰 값 즉 max heap) 이므로 greater옵션을 주어 min heap으로 바꾸어준 뒤 조건에 맞게 출력해주면 됩니다. Code #include #include #define fastio ios_base::syn..
(C++) - 백준(BOJ) 1620번 : 나는야 포켓몬 마스터 이다솜 답 www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net map자료구조와 vector자료구조를 사용해보는 간단한 문제였습니다. 풀이방법 map자료구조에서 c++의 경우에는 value로부터 key를 추출하는 내장함수가 딱히 없어 vector자료구조를 이용했습니다. 1. 도감의 번호에 해당하는 포켓몬이름을 해당 자료구조에 저장했습니다. 2. 도감의 번호에 해당하는 포켓몬이름이 주어질 경우 map의 value를 출력하도록 했고 반대로 도감의 포..
(C++) - 백준(BOJ) 1074번 : Z 답 www.acmicpc.net/problem/1074 1074번: Z 한수는 2차원 배열 (항상 2^N * 2^N 크기이다)을 Z모양으로 탐색하려고 한다. 예를 들어, 2*2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, 2차원 �� www.acmicpc.net 재귀를 이용해 풀었습니다(백트레킹 방식.) 풀이방법 : 일반적인 정적 배열 할당으로는 풀 수가 없습니다. 최대 배열 크기 2^15 x 2^15 개 = 20억 이상. 따라서 고려할 수 있는 것은 재귀 또는 특정 공식을 찾아 푸는 것입니다. Code : #include #include using namespace std; int n,r,c,ans=0; int dx[4] = {0,0,1,1}; int ..
(C++) - 백준(BOJ) 18111번 : 마인크래프트 답 https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 높이를 천천히 낮춰가며 최소시간과 가장 높은 높이를 구하는 구현, brute force 문제였습니다. 풀이방법 : 1. 높이 확인 : 최소 높이는 0 최대 높이는 256까지 loop 2. 채워야할 블록개수 지워야할 블록개수 계산 : if(맵의 한 타일에서 높이 - 정한높이가 양수) => 지워야할 블록 개수 else => 채워야할 블록 개수 3. 높이와 걸린 시간 갱신 if(지울 블록의 개수 + ..
(C++) - 백준(BOJ) 4949번 : 균형잡힌 세상 답 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 문제 세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다. 정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단 www.acmicpc.net stack을 사용하여 문자열을 다뤄보는 구현문제였습니다. Code: #include #include #include using namespace std; string getBracketStr(string sentance){ string tmp=""; for(int i = 0; i
블로그에 소스코드 삽입하기 플러그인 syntax highlight을 설치하여 코드블럭을 삽입할 수 있도록 블로그를 꾸며보겠습니다. 1. 티스토리 블로그를 들어가면 다음과 같이 우측 상단에 내 프로필이 0과 같이 동그랗게 있습니다. 얠 누르면 나오는 정보들 중 운영중인 블로그에서 내가 꾸밀 블로그의 설정으로 들어갑니다. 연필 모양 아이콘 오른쪽이 설정 아이콘입니다.2 2. 들어가면 다음과 같이 내 블로그를 관리할 수 있는 창이 뜹니다. 하꼬 인증하겠습니다. 쭈욱 드래그하여 내리면 플러그인 항목이있습니다. 3. 빨간 네모칸으로 표시해놓은 플러그인 항목을 살포시 눌러줍니다. 4. 다음과 같이 내가 설치한 플러그인, 깔 수 있는 플러그인들을 주루룩 볼 수가 있습니다. 빨간색 네모로 표시해 놓은 검색을 눌러줍니다. 누른 후 syntax를 ..
(Python) - 백준(BOJ) 16829번 : Hashing 답 https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정� www.acmicpc.net 큰 수를 다루는 법을 구현하는 문제였습니다. 풀이방법 : 1. ord함수 : 문자의 아스키 코드값을 반환하는 함수입니다. 이를 통해 원하는 알파벳의 숫자수열을 구할 수 있었습니다. 2. 얻은 숫자수열을 문자열의 길이만큼 loop를 돌려 정해진 해싱함수를 돌려 결과값을 출력합니다. Code : def convertStrToInt(strWord): tmp = [] for i in range(str..
(C++) - 백준(BOJ) 1966번 : 프린터 큐 답 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료�� www.acmicpc.net 우선순위 큐, 큐를 사용하는 완전탐색 문제였습니다. Code : 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 #include #include using namespace std; int main(void){ int t; cin >> t; w..