본문 바로가기

PS/BaekJoon

(105)
[C++/1527] 금민수의 개수 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.이건 엊그제(5.19)에 풀었던 문제같다. 일단 문제 조건을 보자.문제는 은민이는 4와 7을 좋아해서 그 숫자들로만 숫자를 만들려고 한다. A와 B가 주어졌을 때, A보다 크거나 같고, B보다 작거나 같은 자연수 중에 금민수의 것의 개수를 출력해보자.일단 A와 B의 크기는 1 ~ 1,000,000,000 1부터 10억이다. 자 대충 컴퓨터는 1초에 1억번의 연산인데 첨부터 10억까지 가려면 일단 10초가 걸리기 때문에 단순 for문으로는 해결할 수 없고, 그리고 4 또는 7이 나온다면? 하나하나 체크를 해야하는데 그 또한 숫자로 해결하기엔 말도 안된다. 이 문제는 string 타입으로 문제를 해결..
[C++/1522] 문자열 교환 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.블로그에 글을 안올렸지만, 그래도 문제는 풀었습니다. 하지만 그렇게 많이 풀지는 못했다. 왜냐하면, 담당하고 있는 프로젝트를 혼자 떠안고 있기 때문에, 담당자와 전화도 내가 기획도 내가 백도 내가 프론트도 내가 UI/UX만 따로 부탁을 드렸다. 그 프로젝트가 오늘로서 기능 구현과 동시에 UI/UX도 마무리 되었다. 내일 담당자와 전화해서 수정할 부분 체크해야지그래서 짬이 나서 문제를 하나 건드려봤다. 실버1 문제라서 방심하다가, 아이디어가 떠오르지 않아서 한시간은 이리 저리 돌려가면서 문제를 해결하려고 노력했던것 같다.생각해보니까 a의 개수만큼 한칸씩 둘러보면서 그 안에 들어있는 b의 개수를 세어..
[백준/C++] 16943 숫자재배치 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.4월 5월은 항상 결혼식이 많다. 최근에 사회도 봤다. 돈이 없다. 힘들다. 그래서 문제 풀기와 블로그 글 작성에 시간을 쏟지 못했지만, 틈틈히 nest도 공부하고 있고 클론 코딩을 하면서 익숙해지려는 중입니다..어쨌든, 쉬울줄 알았는데 생각보다 문제를 잘못 풀고 있어서 회고를 해봅니다. 문제를 해결함에 있어서, 그리고 현재 개발일을 하면서 생각치도 못한 조건이 발견된다면 그것은 곧 버그로 이어지더라고요. 그래서 알고리즘 문제를 풀면서 다양한 조건들을 파악해 버그를 미리 예방하는 것이 좋습니다. 그러한 사고를 이끄는 것이 알고리즘 문제 해결이 아닐까 싶습니다. 그래서 대부분의 기업들이 코딩테스트를..
[백준/c++] 25592 바둑돌 게임 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.금요일이기도 해서 쉬운 문제로 자존감만 채우자 했는데, 퇴근 10분전에 타임어택식으로 문제를 해결하려고 접근했습니다. 근데 생각보다 어려운 문제였습니다.저만 어려웠는지 모르겠지만, 해당 문제는 이러합니다.푸앙이라는 친구는 첫번째로 돌을 가져가는데 일단 1개를 가져간다고 합니다. 근데 상대방은 이전에 푸앙이 가져갔던것 보다 1개를 더 가져가게 됩니다. 그렇게 된다면? 1개 2개 3개 4개를 홀수번에는 푸앙이 짝수번에는 상대방이 가져가게 됩니다.그렇다면 푸앙은 어떻게 바둑돌을 추가해서 본인이 이기게끔 만들 수 있을까요?푸앙이 이길 수 있는 방법은 두가지가 존재합니다.내 차례에 내가 가져갈 돌이 정확히..
[백준/C++] 16974 레벨 햄버거 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.다시 돌아온 다이나믹 프로그래밍입니다. 해당 문제를 풀때 굉장히 오랜시간 고민을 했습니다. 약 1시간정도를 고민했는데요. 중간에 어떤식으로 풀어야겠다 라는 방법이 떠올랐지만, 코드에 그대로 적용하기까지에 시간이 오래걸렸습니다.왜냐하면, 처음에는 엄청 쉬워보였거든요. 그냥 단순히 햄버거 쌓는 규칙을 찾는줄 알았으나... 그게 아니고, 한단계씩 위의 햄버거를 보면서 문제를 해결하는 것이었던겁니다.그래서, 재귀라는 것을 바로 생각하지 못하고 이리 저리 돌리면서 생각하다가 천천히 그림을 그려보니까 이렇게 구해야겠다고 생각을 했습니다.첫번째 레벨 0는 단순히 패티 한장으로 이루어져 있습니다. [ p ] 이..
[백준/C++] 5911 선물 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다. 오랜만에 구현력도 기를겸 실버 문제를 살살 건드리고 있습니다. 해당 문제는 한번 헷갈려서 정리를 해보겠습니다. 일단 기본 입력값들의 범위가 주어집니다. 입력되는 N의 범위는 (1 m; for(int i = 0; i > ip >> dp; v.push_back({ip,dp}); } } bool comp(pair& a, pair& b){ if(a.first + a.second == b.first + b.second){ return a.first < b.first; } return a.first + a.second < b.first + b.second; } int main(..
[백준/C++] 14728 벼락치기 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다. 문제에서 주어지는 것을 파악해봤을 때, 배낭 문제와 동일하다는 것을 알 수 있었습니다. 1) 총 시간이 1에서 10000사이의 숫자 2)단원의 개수는 1에서 100 사이의 숫자입니다. 3) 공부시간과 문제의 배점은 1에서부터 1000사이의 숫자입니다. 위의 조건대로 본다면? 이중 for문으로 해결해도 상관이 없고, 자료형도 int로 만들어도 상관이 없습니다. 그래서 내가 갖고있는 시간만큼에서 최대의 점수를 낼 수 있어야 하고, 이 문제의 형식은 배낭문제와 동일합니다. 오늘 배낭문제를 다시 이해를 하게 되었습니다. 일단 제가 이해한 방식을 이렇습니다. 해당 문제는 모든 경우의 수를 따져서 제한된 ..
[백준/C++] 15993 1,2,3 더하기 8 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다. 해당 문제는 더하기 7을 풀고나면 쉽게 풀립니다. 이런 문제는 무엇을 요구하냐면? 정수 n을 1,2,3의 합으로 나타내는 방법의 수를 구하는데, n을 나타낼 때 사용한 수의 개수가 홀수인 방법의 수와 짝수인 방법의 수를 공백으로 구분해 출력하라는 말입니다. 이러 문제는 이전에도 풀었는데, 잘 생각해봐야합니다. 우리는 홀수와 짝수를 구하는 문제인데 어떻게 하면 홀수와 짝수를 잘 구해낼 수 있을까? 이런 문제는 쪼개보는겁니다. 하지만 이 문제를 풀기 전에 그냥 10만이라는 숫자를 보지 못해서 이전에 풀었던거 날먹으로 해결하려고 했으나, 10만에 10만이라 저어어어얼대 시간내로 해결할 수 없어서 새로..