[BAEKJOON] 9655번 돌게임
·
Algorithm/구현, 시뮬레이션
https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 뭔가 정형적인 알고리즘으로 접근이 되지 않아서 직접 예시를 들어가며 풀어봤다. 돌 개수 이기는 사람 1 상근 2 창영 3 상근 4 창영 5 상근 규칙이 나왔다. 어차피 한번에 가져갈 수 있는 수는 1,3개로 제한되므로, 돌의 개수기 홀수일땐 상근이 이기고, 짝수일땐 창영이 이긴다. #include using namespace std; int n; //1 or 3 개씩 가져갈 수 있음 int main(){ cin >> n; if (n % 2) cout
[BAEKJOON] 1157번 단어 공부
·
Algorithm/구현, 시뮬레이션
https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 가장 많이 쓴 영어 단어를 대문자로 출력하라. 사실 그냥 문자를 숫자로 취급한 아스키코드로 쉽게 풀어줄 수도 있지만, 저번에 map으로 이런 비슷한 문제를 풀어 봤던것 같아서 map을 써서 풀어 볼 것이다. key-value로 char-int로 두면 각 문자가 등장한 횟수를 쉽게 알 수 있다. #include #include using namespace std; string s; map m; //가장 많이 사용된 알파벳 2개이상일..
[BAEKJOON] 2292번 벌집
·
Algorithm/구현, 시뮬레이션
https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 1번방 부터 n번방 까지의 최소거리를 구하는 문제이다. 접근방법은 규칙파악이었다. 뭔가 육각형으로 쭉 둘러쌓여있으니까, 숫자 6과 관련된 규칙이지 않을까 생각했다. 1부터 시작해서 맨바깥테두리를 한번씩 채울때 마다 몇개의 육각형이 있는지 세어 봤다. 1, 6, 2*6, 3*6, 4*6 ... 순이다. 점화식을 세워보면 6^k (k >=0 인 정수) 로 나타 낼수 있다. 뭔가 다 파악해놓고 1시간가량 머리가..
[BAEKJOON] 5073번 삼각형과 세 변
·
Algorithm/구현, 시뮬레이션
https://www.acmicpc.net/problem/5073 5073번: 삼각형과 세 변 각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오. www.acmicpc.net 수학을 한지 꽤 오래되어서 삼각형의 조건을 만족하지 못하는 경우,,,? 를 몰라서 엄청 당황했다. 두변의 길이의 합이 나머지 한변의 길이보다 커야 삼각형이 된다. 나 중학교 나왔는데,,, 조건이 너무 많아서 구현하는데 헷갈렸다. 그리고 이 문제는 if문과 else-if문이 어디서 걸리는지 잘 판단 해야 한다. 아니면 while문 안에서 무한루프등에 빠질 수 있으니,, 특히 종료조건으로 if문은 따로! 빼줘야한다 #include using namespace std; int..
[BAEKJOON] 23971번 ZOAC 4
·
Algorithm/구현, 시뮬레이션
https://www.acmicpc.net/problem/23971 23971번: ZOAC 4 i행 j열 자리를 (i, j)라고 할 때, (1,1)에 참가자가 앉은 경우 다른 참가자는 (1,2), (2,1), (2,2) 자리를 제외한 나머지 자리에 앉을 수 있다. (2,2)의 경우는 (1,1)과 행 번호 및 열 번호의 차가 1보다 크 www.acmicpc.net 변수가 너무 많아서 읽는데 힘들었던 문제였다 h = 세로 w = 가로 n = 세로 차이 m = 가로 차이 정리하고 보니 별 거 아닌 조건이다,,, 아무튼! 문제의 질문은 h*w의 크기의 강의실에서 세로로 n칸 또는 가로로 m칸 떨어져서 수용할 수 있는 최대 수 를 구하면 된다. 생각보다 어려운데,,,? 라고 생각했는데 어떤 접근방법을 생각해볼까 ..
[BAEKJOON] 2613번 숫자구슬
·
Algorithm/Binary Search
https://www.acmicpc.net/problem/2613 2613번: 숫자구슬 첫째 줄에 구슬의 개수 N과 그룹의 수 M이 주어진다. 둘째 줄에는 각 구슬이 적혀진 숫자가 왼쪽부터 차례로 주어진다. N은 300 이하의 자연수, M은 N이하의 자연수이며, 구슬에 적혀진 숫자는 100 www.acmicpc.net 구슬 N개를 그룹 M개로 나눈다. 각 그룹은 무조건 구슬이 1개이상이다. 모든 경우의 그룹을 나눴을때, 그룹의 최대값이 나올 수 있는 경우의 수 중 최소일때를 찾는다. 접근 방법이 도저히 떠오르지 않았다. 각 경우의 수를 모두 구해야하는 완탐으로 접근해야 하나,,? N이 늘어날수록 어마무시하게 시간복잡도가 높아질게 뻔히 보이므로 알고리즘적으로 접근방법을 찾아야만 한다,,, 진짜 모르겠다 멍..