본문 바로가기

Algorithm/Implementation

(746)
(C++) - 백준(BOJ) 20165번 : 인내의 도미노 장인 호석 https://www.acmicpc.net/problem/20165 20165번: 인내의 도미노 장인 호석 사람을 화나게 하는 법은 다양하다. 그 중에서도 악질은 바로 열심히 세워놓은 도미노를 넘어뜨리는 것이다. 이번에 출시된 보드 게임인 "너 죽고 나 살자 게임"은 바로 이 점을 이용해서 2명이 www.acmicpc.net simulation, 구현 문제였습니다. 풀이방법 1. 현재 게임판에 대한 입력을 적절이 받고 매 라운드별 입력을 받습니다. 2. 공격의 행,열 좌표에 해당하는 도미노가 쓰러져있다면 아무일도 벌어지지 않습니다. 서 있다면 방향대로 쓰러뜨립니다. 판의 끝까지 순회하며 더 높은 높이가 있다면 지속적으로 갱신해주면서 도미노를 쓰러뜨립니다. 3. 수비수의 입력 좌표에 해당하는 도미노를 세워..
(C++) - 백준(BOJ) 17826번 : 나의 학점은? https://www.acmicpc.net/problem/17826 17826번: 나의 학점은? 3학년인 홍익이는 이번 학기 전공필수 과목인 운영체제(OS) 수업을 들었다. 수업을 마치고, 얼마 후 교수님께서 클래스넷을 통해 전 학생의 중간고사, 기말고사, 과제점 점수를 만점 기준 300점으 www.acmicpc.net 단순구현문제였습니다. Code #include using namespace std; int score[50]; int hongik; string getDegree(int rank){ if(rank
(C++) - 백준(BOJ) 21737번 : SMUPC 계산기 https://www.acmicpc.net/problem/21737 21737번: SMUPC 계산기 SMUPC를 기념하기 위해 ALGOS와 DSC Sookmyung에서는 SMUPC의 각 글자로 계산이 이루어지는 계산기를 만들었다. 가은이와 혜민이는 이 계산기와 같은 방식으로 작동하는 프로그램을 만들고자 한다. 가은 www.acmicpc.net 문자열 parsing 후 구현 문제였습니다. 풀이방법 1. 숫자는 숫자끼리, 계산명령어는 명령어끼리 parsing해 각각의 vector에 저장했습니다. 2. 명령어의 size만큼 확인하면서 계산을 수행합니다. Code #include using namespace std; using ll = long long; ll n, cFlag, output, idx; strin..
(C++) - 백준(BOJ) 3425번 : 고스택 https://www.acmicpc.net/problem/3425 3425번: 고스택 각각의 입력값에 대해서, 해당하는 프로그램을 수행한 뒤, 출력값을 출력하면 된다. 출력값이란 스택에 저장되어 있는 숫자이다. 만약, 프로그램 에러가 발생하거나, 모든 수행이 종료됐을 때 www.acmicpc.net 구현 문제였습니다. 풀이방법 * overflow를 고려해야합니다. 계산 결과가 int범위를 초과할 수 있습니다. * divide by zero를 조심하세요. 나눗셈 연산에서 제수가 0인 경우 error입니다. * 문제를 명확히 읽어야 합니다. * 매 명령어 수행시 LIMIT(10억)을 초과할 수 있습니다. * 수행결과에는 stack에 원소가 1개만 있어야합니다. 한 입력마다 입력받은 프로그램을 실행할 때 er..
(C++) - 백준(BOJ) 2028번 : 자기복제수 https://www.acmicpc.net/problem/2028 2028번: 자기복제수 어떤 자연수 N을 제곱했을 때, 그 제곱수의 맨 뒷자리에 원래의 수 N이 다시 나타나면, 우리는 그 수 N을 자기복제수라고 한다. 예를 들면, 5의 제곱은 52는 25이고 25의 맨 뒷자리에 원래의 수 5가 www.acmicpc.net 단순 구현문제였습니다. 풀이방법 1. 입력받은 수와 제곱수를 문자열로 바꿉니다. 2. 제곱수 문자열에서 입력받은 수의 문자열을 찾습니다. find함수를 통해 찾은 인덱스를 확인해서 마지막에 입력받은 수 문자열이 나온다면 YES, 아니라면 NO를 출력합니다. *find함수는 인자에 해당하는 값을 찾지 못했다면 string::npos를 반환합니다. Code #include using na..
(C++) - 프로그래머스(2020 KAKAO BLIND RECRUITMENT) : 기둥과 보 설치 https://programmers.co.kr/learn/courses/30/lessons/60061?language=cpp 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr 구현 문제였습니다. 풀이방법 set을 이용해 해결했습니다. ..
(C++) - 프로그래머스(2019 KAKAO BLIND RECRUITMENT) : 길 찾기 게임 https://programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr Linked list로 graph를 만든뒤 전위, 후위 순위를 하는 문제였습니다. 풀이방법 1. 노드 번호를 nodeinfo에 추가해줍니다. i번째 nodeinfo는 i+1의 노드번호를 가집니다. 2. x축에 대해 오름차순으로 정렬해줍니다. 이러면 중간에 적절히 root에 해당하는 가장 큰 y값의 node가 위치하게 됩니다. 3. tree구조를 struct 형태로..
(C++) - 프로그래머스(2020 KAKAO BLIND RECRUITMENT) : 자물쇠와 열쇠 https://programmers.co.kr/learn/courses/30/lessons/60059# 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 구현 문제였습니다. 풀이방법 검은색 부분은 key이고 파란 부분은 lock입니다. 계속해서 오른편으로 이동하고 끝에 다다르면 한 칸 내려가 처음부터 시작해 다시 오른쪽으로가는 방법으로 열 수 있는지의 여부를 알아낼 수 있습니다. 1. expandedLock 배열을 만들어 lock을 50 * 50으로 넉넉하게 확장해줍니다. 그리고 (20 ~ 20 + 행)부터 (20번째 열 ~ 20 + lock.size()번째 ..