공부 및 정리

    최근 백준 코드 정리는 노션에 있습니다.

    블로그에 있는 백준 글들은 옮기는 과정에 있으며, 모든 글이 옮겨지면 이 카테고리는 노션 링크로 대체하겠습니다. https://metal-glider-ba3.notion.site/Notes-abf41c272e344c32b14424655630126e 백준 Notes 1956번 문제 = 실패로 재시도 예정 metal-glider-ba3.notion.site

    [C++] 백준 - 2193번 문제

    2193번: 이친수 (acmicpc.net) 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 2193번 : 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다...

    [C++] 백준 - 1748번 문제

    1748번: 수 이어 쓰기 1 (acmicpc.net) 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 1748번 : 수 이어 쓰기 1 1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다. 1234567891011121314151617181920212223... 이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. 출력 첫째 줄에 새로운 수의 자릿수를 출력한다. 생각해 볼 점 1의 자리 수 : 9개 10의 자리 수 : 90개 100의 자리 수 : 900개 위와 같이 생각하면서 자릿수와 갯수를 ..

    [C++] 백준 - 11656번 문제

    11656번: 접미사 배열 (acmicpc.net) 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 11656번 : 접미사 배열 접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다. baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고, 이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon이 된다. 문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 문자열 S..

    [C++] 백준 - 10610번 문제

    10610번: 30 (acmicpc.net) 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 10610번 : 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라. 입력 N을 입력받는다. N는 최대 10^5개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. 출력 미르코가 만들고 싶어하는 수가 ..

    [C++] 백준 - 11056번 문제

    11056번: 두 부분 문자열 (acmicpc.net) 11056번: 두 부분 문자열 첫째 줄에 문자열 A, 둘째 줄에 문자열 B가 주어진다. 두 문자열은 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 11056번 : 두 부분 문자열 두 문자열 A와 B가 주어진다. 이때, A와 B를 부분 문자열로 가지는 문자열 S를 구하는 프로그램을 작성하시오. 가능한 S가 여러 가지인 경우 길이가 가장 짧은 것을 출력한다. 예를 들어, A = "baekjoon", B = "hongjun"인 경우 가능한 S중 길이가 가장 짧은 것 중 하나는 "baekhongjouon"이다. 입력 첫째 줄에 문자열 A, 둘째 줄에 문자열 B가 주어진다. 두 문자열은 알파벳 소문자로만 이루어져 ..

    [메모] l-value와 r-value

    * 서론 - 고전적으로 l-value, r-value는 대입문 왼편, 오른편에 올 수 있는 값들을 의미했습니다. - 최근에는 l-value는 참조가 가능한 객체라고 정의합니다. 즉, l-value : &연산자를 붙일 수 있는 주소 값을 취할 수 있는 값 r-value : 주소값을 취할 수 없는 (임시) 값 으로 정의할 수 있겠습니다. 실제로, 컴파일러는 r-value의 연산자를 허용하지 않습니다. * l-value 참조자 int& func(int& a) { return a; } int main() { int a = 3; int b = 2; func(a) = 4; printf("%d\n", a);//4 printf("%d\n", func(a));//4 printf("%d\n", func(b));//2 } ..

    C++의 기초 - 7

    * 분할 컴파일 여러 개의 소스 코드들을 따로 컴파일하는 작업 - #include "헤더" 여러 cpp 파일에서 같은 클래스/ 구조체를 사용하고 싶을 때 .h 파일을 include 하여 같은 내용을 여러번 작성할 필요가 없습니다. .h 파일에 들어갈 수 있는 내용 1. 함수 원형 2. #define 혹은 const 변수 3. 구조체/ 클래스의 선언 4. 템플릿 선언 5. inline 함수 - 분할 컴파일의 장점 1. 파일의 분리로 인해 모듈화가 가능합니다. 2. 프로그램 수정 시 수정된 파일만 컴파일하여 컴파일 속도를 높입니다. 3. 모듈별 테스트 및 디버깅이 가능합니다. * 기억 존속 시간 - C++은 네가지 유형으로 메모리를 저장합니다. 1. 자동 기억 존속 : 함수 또는 블럭 내부의 메모리가 해당 ..