* 개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. #1 상수를 가리키는 포인터 - const int *ptr #2 상수 포인터 - int const *ptr #3 상수를 가리키는 상수 포인터 - const int const *ptr const는 변수를 상수화 시킬 때 사용하는 키워드입니다. 포인터도 주소를 저장할 때 사용하는 "자료형" 이기에, 마찬가지로 const 키워드를 사용할 수 있습니다. 단, const 키워드의 위치에 따라 그 기능이 달라집니다. int a = 100; const int *ptr = &a; int const *ptr = &a; const int const *ptr = &a; #1 상수를 가리키는 포인터 - const int *p..
#INFO 난이도 : SIVLER3 알고리즘 유형 : DataStructure_QUEUE 출처 : 1966번: 프린터 큐 (acmicpc.net) 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net #SOVLE pair 와 queue 의 사용법을 연습할 수 있도록 해준 좋은 문제였습니다. 3번째 테스트 케이스 [6 , 0] [1 , 1 , 9 , 1 , 1 , 1] 를 예시로 풀이 하도록 하겠습니다. 우선 queue와 pair를 이용해 각 중요도를 구별하기 위해서, 인덱스를 붙여 주었습니다. 만약 인덱스가 찾고자 하..
#INFO 난이도 : SIVLER3 알고리즘 유형 : Dynamic Programming 출처 : 2579번: 계단 오르기 (acmicpc.net) 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net #SOLVE DP의 Bottom-up 방식을 이용해 문제를 풀이했습니다. * dp[i] - i 까지 최대 점수 * stairs[i] - 계단의 점수를 저장할 배열 단, 문제의 조건에 유의하여 점화식을 작성해야 합니다. 조건은 다음과 같습니다. 1. 연속된 3칸의 계단을 오를 수 없다. 2. 마지막 계단은 반드시 밟아야 한다. d..
#INFO 난이도 : SIVLER4 알고리즘 유형 : DataStructure_QUEUE 출처 : 11866번: 요세푸스 문제 0 (acmicpc.net) 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net #SOLVE 큐 자료구조를 이용하면 간단하게 풀이 가능한 문제 였습니다. 입력받은 N까지의 수를 QUEUE 에 PUSH한 뒤, K번째 사람이면 pop을 하고 K번째 사람이 아니라면 pop 한 뒤, 다시 뒤에서 push 해 줍니다. while(!q.empty()) { if (cnt % K == 0) { int ans = q.front(); q.pop(); if (q.empty()) { cout >..
* 개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. #1 메모리 저장 방식 #2 포인터(Pointer) 연산자 * & #3 포인터가 필요한 이유 #4 포인터 문법 - 포인터 변수 선언 - 널 포인터 #1 메모리 저장 방식 포인터를 공부하기에 앞서 우선 프로그래머가 변수를 선언할 시 데이터가 메모리에 어떤 방식으로 저장되는지에 대해 알아 보도록 합시다. int val = 10; "val 이라는 이름의 int 타입 변수를 선언하고 10을 할당했다." 라는 것은 컴퓨터가 어딘가의 메모리 공간에 4byte 를 할당하고 그 메모리 공간의 이름은 프로그래머가 사용하기 쉽도록 val이라는 명칭을 붙여준 것입니다. cout