본문 바로가기

분류 전체보기

(273)
[C++/28066] 타노스는 요세푸스가 밉다. ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.컨베이어 벨트처럼 차례대로 정리하고 정리하지 않은 박스는 맨 뒤로 보내는 작업입니다. 링크드 리스트를 직접 구현해서 문제를 해결할 수도 있는 문제네요. 하지만, 그렇게까지 고생은 하고싶지 않기 때문에, 간단하게 배열로 해결하려고 했지만, N의 개수가 1,000,000개입니다. K가 극단적으로 적다면? (1,000,000 + 1)을 500,000번 반복해야 하기 때문에 시간 초과가 발생할 수 밖에 없습니다. 그래서 queue를 이용해 푼다면? 쉽게 풀리는 문제입니다.아래는 정답코드입니다.#include#include#include#define MAX 1000100using namespace std;..
[C++/28256] 초콜릿 보관함 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.범위도 3x3으로 정해져 있고, 가운데를 제외한 나머지 초콜릿이 그룹을 어떻게 이루어져 있는지 파악하는 문제입니다. 구현할게 은근히 많지만 그래도 기본적인 구현공부를 했던 사람이라면? 충분히 풀어낼 수 있는 문제입니다.하지만, 나는 여기서 한 번 틀리고 마는데 이유는 무엇이냐면? 화면에 표시된 숫자의 개수인 n이다. n은 0 부터 4 까지이며 그리고 다음 문제는 이것이다. 정답을 틀리게 줄 수 있는 것이다. 개수가 같아도 틀릴 수 있고, 등등 여러가지 조건이 붙어 있다. 아래는 정답 코드이다.#include#include#include#include#include #define MAX 4using..
[C++/30804] 과일 탕후루 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.앞에서부터 차례대로 탕후루를 제거해야하기 때문에, 과일의 개수를 세면서 그 과일이 0이되면 과일이 1개가 사라진것이기 때문에 그것으로 과일은 세아린다. 처음에는 그 과일 전부가 빠져야하지 않나? 라는 생각으로 전부 제거를 했지만, 결과는 2%만 맞고 틀리는 결과를 얻게 되었고 생각해보니 과일이 세개가 되는 시점에 그 안에 있는 탕후루의 과일이 1개가 될때까지 계산을 해야한다. 물론 그 사이에 가장 긴 구간도 찾아야 하고, 정리하자면 이런 알고리즘을 따른다.0. 시작위치, 끝나는 위치는 0번 인덱스를 가리키고 있다.1. 처음에 선택한 과일은 0개이다.2. 탕후루를 0번 인덱스부터 차례대로 선택한다...
[C++/2115] 갤러리 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.가로 세로 줄마다 벽이 어느정도 이어져 있는지 파악하면 되는 문제입니다. 정답률이 굉장히 높기 때문에 도전했습니다. 저번에는 정답률이 20~30%정도의 문제만 풀었는데, 이런 문제도 풀어야하지 않을까요? 해서 풀었습니다. 근데 매번 낮은 문제만 풀다보니 정답률이 높아도 의심이 가더라고요 그래서 심사숙고해서 문제를 풀었습니다.해당 문제에서는 벽2칸에 그림 하나를 걸 수 있는데, 그런 벽이 몇개 있는지 알아야합니다. 그래서 연속적으로 어떻게 벽이 이루어져 있는지 파악하는 문제입니다. 그래서 구현을 깔끔하게 해줘야합니다.입력값도 1#include#include#define MAX 1010using na..
[C++/23796] 2,147,483,648 게임 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.2,147,483,648 게임이란, 2048 게임과 같고, 숫자의 범위만 int의 마지막값입니다. 그래서 unsigned int로 범위를 정해놓고 문제를 해결했습니다. 물론 입력값으로 저 값이 나오진 않지만 혹시나 몰라서 타입을 unsigned로 정해놨습니다.문제를 해결할때, U,L,D,R 로 4가지를 구현하는 것 또한 좋은 방법입니다. 하지만, 해당 문제를 해결하면서 4가지를 전부 구현하는 것 보다는 배열을 시계방향으로 돌려가면서 하나의 방식으로만 이동을 시킨다면? 좀 더 문제 해결에 문제가 없을 것 같았습니다. 구현시 어느 부분에서 문제가 발생했는지 4개를 살피는 것보다는 더 나으니까요. 해당..
[C++/25565] 딸기와 토마토 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.단순한 공식을 도출해 문제를 푸는 것인줄 알았지만, 여러가지 조건을 생각해봐야하는 문제였습니다. 진짜 틀렸습니다만 1시간을 달리다가 문제를 풀었습니다. 정답비율을 떨어뜨리는데 일조했습니다.천천히 보겠습니다. 입력값은 n,m,k가 공백으로 주어지는데 1 내용은 이렇습니다. 어쩄든 딸기와 토마토를 가로든 세로든 한줄로 한 보드(n * m)에 심습니다. 그래서 어찌됐든 딸기와 토마토는 어떻게 심게되냐면?0. 토마토와 딸기 전부 겹치지 않는다. (k * 2)1. 토마토와 딸기를 한줄에 전부 다 심는 경우(딸기와 토마토가 전부 겹친다.)2. 토마토와 딸기를 십자가 모양으로 심는 경우 무조건 1개가 겹친다...
[C++/5766] 할아버지는 유명해! ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.할아버지께서 가장 많은 포인트를 얻어서 최고의 브릿지 선수로 선정되었습니다. 랭킹에 선수의 이름이 오를 때마다 선수의 포인트가 1포인트씩 오른다고 합니다.할아버지는 2등이 누군지 궁금해졌는데? N주동안 M명의 랭킹을 보여주게 되는데, M명의 랭킹은 무작위이다. 그렇다면? 제일 많은 랭킹권에 든 아이디가 1등일것이고 이것은 할아버지일 것이다. 하지만, 중복으로 나오는 사람도 있을 것이다. 2등으로 그렇다면 2등은 두명 이상이라면? 각 선수의 번호를 공백으로 구분해 오름차순으로 출력한다는 것이다.N,M의 범위는 500주 그리고 500명 이하이기때문에 매 주마다 랭킹에 든 아이디를 +1 포인트를 넣어주..
[C++/1790] 수 이어 쓰기 2 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.일단 입력값을 보자마자 일반적인 방식으로 풀 수 없다고 생각했다.N의 크기 (1 일단 12345678910111213141516...9991000 이런식으로 문자열을 생성할 수 있어야한다. 그래서 천천히 생각을 해보았다. 흠 여러여러 돌아다니다가 결국엔 이렇게 해결할 수 밖에 없지 않을까 생각했다.1개의 자리수 (1 ~9)2개의 자리수 (10~99)3개의 자리수 (100~999)4개의 자리수 (1,000~9,999)5개의 자리수 (10,000~99,999)6개의 자리수 (100,000~999,999)7개의 자리수 (1,000,000~9,999,999)8개의 자리수(10,000,000~99,999,..