코딩테스트

https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 1. Logic 1. 난쟁이들의 키의 총 합이 100이고 난쟁이들의 수가 정해져있기 때문에 키를 입력받으면서 동시에 전부 더해준다 2. 2명을 제외하면 되기 때문에 2중 for문을 돌면서 2명의 키를 뺀것이 100이 되면 출력해준다. 2. Code #include using namespace std; vector vec; int main() { int sum = 0; for(int i = 0; i < 9;..
https://school.programmers.co.kr/learn/courses/30/lessons/12980# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. Logic 짝수일 때에는 2로 나눠주고 홀수일 때에는 -1을 해주고 2로 나눠준다. 2. Code #include using namespace std; int solution(int n) { int ans = 0; while(n) { if(n % 2 == 1) ans++; n /= 2; } return ans; } 3. Feedback 처음 문제를 보고 아래의 코드와 같이 코딩을 했지만 i..
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 1. Logic - 값을 확인해주며 0이 나왔을때는 값을 빼줘야하기때문에 후입선출(Last In First Out)의 성질을 가진 stack 활용. - 정수가 입력되면 sum에 더해주고 0이 나오게되면 stack의 최상단 값을 sum에 빼주고 stack에서 pop #include using namespace std; stack s; int main() { int ..
1. Dynamic Programming 이란? Dynamic Programming 즉 동적 계획법은 하나의 큰 문제를 여러개의 작은 문제로 나누어서 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 것. 내가 이해한 DP란 재귀를 활용하게 되면 알고리즘 문제를 풀 때 이미 계산한 값도 중복해서 계산을 해야 하지만 DP는 내가 생성한 DP테이블에 계산한 값을 저장해 놓기 때문에 동일한 연산을 마주치면 값을 계산하지 않고 dp테이블에서 가져와서 하위 연산을 하지 않기 때문에 시간복잡도를 줄일 수 있음. 동적계획법이라고 하기보단 "memoization / 값 저장해서 필요할 때 가져오는 방법" 이라고 이해하면 편할 것 같다 2. DP와 재귀 연산횟수 비교 (백준 2576 계단 오르기) 해당 문제 또한 ..
보글보글소다
'코딩테스트' 태그의 글 목록 (3 Page)