12931번: 두 배 더하기 모든 값이 0으로 채워져 있는 길이가 N인 배열 A가 있다. 영선이는 다음과 같은 두 연산을 수행할 수 있다. 배열에 있는 값 하나를 1 증가시킨다. 배열에 있는 모든 값을 두 배 시킨다. 배열 B가 주 www.acmicpc.net 거의 한 달만에 푸는 문제... 변명을 하자면 그간 졸업작품 때문에 정말 정말 정말 바빴다... 어제 학교에서 열리는 e스포츠 대회에 전시할 빌드본 버그를 새벽까지 고치고 주말에 시간이 조금 남아 뒹굴거리다... 언니랑 같이 공부하며 정말 오랜만에 풀어보았다. 오랜만에 푸는 거라 알고리즘을 구상하는데 적지 않은 시간이 걸렸지만... 오랜만에 문제 해결하는 고통과 즐거움을 다시 한 번 느꼈다!! 알고리즘 설계 처음에는 [0, 0, 0...]을 입력받..
18234번: 당근 훔쳐 먹기 첫 번째 줄에 N(1 ≤ N ≤ 200,000)과 T(N ≤ T ≤ 100,000,000)가 공백으로 구분되어 주어진다. 오리는 당근의 맛을 충분히 높이기 위해 항상 N이상인 T일 동안 재배한다. 다음 N개의 줄에 걸쳐서 i+1번째 www.acmicpc.net 요즘엔 발상을 하는 데에 시간이 조금 걸리지만, 그 발상을 구현하는 데에 나는 오류나 한계가 줄어든 것 같아서 기분이 좋다! 이 문제도, 발상은 꽤 시간이 걸렸다만, 그걸 구현하는 과정 자체는 나름 노련하게 한 것 같아 기분이 좋다 ^__^ 문제 발상 당근을 뽑지 않는다면, 당근은 배로 계속, 더 맛있어진다! 가장 핵심적인 문제의 내용이다. 항상 w[i] 10000+9999*2이기 때문! 하지만, 저 조건이 있기 때문..
17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 꺄~~ 난생 처음으로 한 번에 맞힌 문제! 구현이 많은 문제였는데 너무 기쁘다~~ 구현을 이제 어느정도 할 수 있게 된 것 같지만, 최적화나 자료구조를 쓰는 부분은 아직도 구현에 비해서 훨씬... 부족한 것 같다. 사실 좋아할 게 아니라 반성해야지만... 그래도 정말정말정말 오랜만에 한 번에 맞힌 문제라 기분이 좋았다!! 알고리즘 설계 구조 우선, 원판 전체를 Deque를 담는 배열로 저장해주었다. 2차원으로 만든 이유는 원판의 숫자 개수가 모두 ..
20010. 악덩 영주 혜유 20010번: 악덕 영주 혜유 FT온라인 게임에서 치열한 경쟁을 통해 영주가 된 혜유는 퀘스트를 받았다. 퀘스트의 내용은 자신이 관리하고 있는 마을 사이에 교역로를 건설하여 마을 간 교류를 활성화시키는 것이다. 이때, www.acmicpc.net 코드 GitHub - minyoung529/AlgorithmStudy: 여러 알고리즘 문제를 푸는 저장소입니다. 여러 알고리즘 문제를 푸는 저장소입니다. Contribute to minyoung529/AlgorithmStudy development by creating an account on GitHub. github.com 알고리즘 설계 크게 두 가지를 구했다. 최소 스패닝 트리는 크루스칼 알고리즘을 이용해서, 두 마을 사이를 이..
5430. AC 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제 풀이 GitHub - minyoung529/AlgorithmStudy: 여러 알고리즘 문제를 푸는 저장소입니다. 여러 알고리즘 문제를 푸는 저장소입니다. Contribute to minyoung529/AlgorithmStudy development by creating an account on GitHub. github.com 알고리즘 설계 1 처음에는 정석대로 R과 D를 시뮬레이션했다. 코드 1 // 일부분 for (char c : command) { if (c == 'R') { reverse(..
10942. 팰린드롬 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 문제 풀 때 막혔던 것 (바보짓..) 초장부터 문제를 잘못 이해해서 초반에 엄청난 시간을 썼다... 나는 처음에, 숫자를 받으면 하나의 문자열로 생각했다. 반대로, 이렇게 하나의 문자열로 생각하지 말고 숫자 자릿수에 상관없이 하나 하나 비교해야 하는 것이었다! 여기까지는 괜찮았지만, 팰린드롬을 비교할 때 치명적인 실수를 했다. p1(index)부터 p2(index)까지의 수가 팰린드롬인지 확인할 예정이었다. 따라서 p1부터 증가하는 값과 p2부터 감소하는 값을 비교해줄 생각이었는데..
42860. 조이스틱 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 GitHub - minyoung529/AlgorithmStudy: 여러 알고리즘 문제를 푸는 저장소입니다. 여러 알고리즘 문제를 푸는 저장소입니다. Contribute to minyoung529/AlgorithmStudy development by creating an account on GitHub. github.com 조이스틱의 최소 움직임을 구하는 문제였다. 그리디라며... 그리디라며!!!!!!! 그리디 문제답게 단순히 순간의 최소 움직임이 최적해가 될 거라고 생각했지만...
1. 숫자 카드 2 10816. 숫자 카드 2 문제 풀이 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 사실 이분 탐색은 아직은 잘 감이 오지 않아서 어떻게 풀지 몰라 처음에는 배열로 count를 세어 해시로 풀었던 문제이다. 해시로 알고리즘 설계 20000001 크기의 int형 배열을 만들어준다. 20000001: -10000000 ~ 10000000까지이므로 int: 각 숫자의 개수를 세야하므로! 넣을 수를 입력을 받고 각 숫자+10000000을 index로 사용해 그 값..