가상 메모리(Virtual memory)란?
가상 메모리는 컴퓨터 시스템에서 물리적 메모리의 용량을 초과하여 프로그램의 메모리 공간을 가상적으로 늘이는 기술입니다. 주요 이점은 크게 메모리 관리 향상, 컴퓨터 자원의 효율적 사용 및 프로세스 구현 단순화 등입니다. 가상 메모리는 페이징 및 세그먼테이션 방식으로 구현되며, 사용하는 주소 공간은 물리적 메모리 넘어서어 하드 디스크 또는 SSD에 저장되어 있습니다. 가상 메모리의 주요 동작 과정은 다음과 같습니다: 1. 주소 변환: 프로그램이 실행되기 위해 가상 주소가 참조됩니다 이 때, 가상 주소를 물리적인 메모리 주소로 변환하는 단계가 필요합니다. 이 과정에서 MMU(Memory Management Unit)가 주소 변환 역할을 수행합니다. 2. 메모리의 데이터 로드 및 저장: 변환된 물리 주소에 대..
2023.06.08
TIL
no image
[C#] get, set 이란?
안녕하세요! 오늘은 C# 프로그래밍 언어에서 중요한 개념인 get과 set 속성에 대해 알아보려고 합니다. get과 set은 C#에서 속성을 정의하고 접근하는 방법을 제공합니다.이를 통해 데이터의 캡슐화와 접근 제어를 유연하게 할 수 있습니다.  1. get 속성get 속성은 해당 속성의 값을 반환하는 역할을 합니다. 속성의 값을 가져오는데 사용되며, 일반적으로 public으로 선언됩니다. get 속성은 속성 이름 앞에 get 키워드를 사용하여 정의합니다. 예시를 통해 살펴보겠습니다:private int age; // 필드public int Age{ get { return age; } // get 속성}위의 예시에서 Age 속성은 age라는 private 필드의 값을 반환합니다. 다른 클래스나 메서..
2023.05.27
TIL
웹어셈블리(WebAssembly)란?
오늘은 웹어셈블리에 대한 내용을 다뤄보려고 합니다. 아마 처음 들으시는 분들도 있을 거라고 생각합니다. 저도 얼마전에 지인을 통해서 알게된 개념이고 정리하고 싶어서 글을 작성하게 되었습니다. 웹어셈블리란? WebAssembly는 최신 웹 브라우저에서 실행할 수 있는 새로운 유형의 코드이며 새로운 기능과 성능에서 큰 이점을 제공합니다. 직접 코드를 작성하는 것이 아니라 C, C++, RUST 등의 저급 소스 언어를 효과적으로 컴파일 하도록 고안되었습니다. 이는 웹 플랫폼에 큰 영향을 미칩니다. 이전에 불가능했던 웹에서 실행되는 클라이언트 응용 프로그램을 사용하여 웹에서 여러 언어로 작성된 코드를 네이티브에 가까운 속도로 실행하는 길을 제공합니다. 게다가 웹어셈블리 코드를 사용하여 이를 활용하는 방법을 알 ..
2023.05.21
[Algorithm] Backtracking이란?
이번 시간에는 Backtracking에 대해서 알아봅시다! Backtracking이란 해를 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법을 말합니다. 최적화 문제와 결정 문제를 푸는 방법이 됩니다. DFS와 Backtracking DFS DFS는 가능한 모든 경로(후보)를 탐색합니다. 따라서, 불필요할 것 같은 경로를 사전에 차단하거나 하는 등의 행동이 없으므로 경우의 수를 줄이지 못합니다. 따라서 N! 가지의 경우의 수를 가진 문제는 DFS로 처리가 불가능할 것입니다. Backtracking 해를 찾아가는 도중, 지금의 경로가 해가 될 것 같지 않으면 그 경로를 더 이상 가지 않고 되돌아갑니다. 즉, 코딩에서는 반복문의 횟수까지 줄일 수 있으므로 효율적입니다. 이를 pruning..
2023.05.19
TIL
no image
[Algorithm] 허프만 코드(Huffman code)
안녕하세요! 여러분 오늘은 허프만 코드(Huffman code)에 대해서 공부해 봅시다:) Huffman code란 무엇일까? 압축(compression)은 자료의 크기를 줄이기 위해서 사용합니다. 이 압축을 하는 방식에 따라서 압축된 파일의 용량이 달라질 수 있는데, 그 중 Huffman code는 문자의 출현 빈도에 따라서 다른 길이를 사용하여 압축하는 그리디 알고리즘(greedy algorithm)입니다. Huffman code는 데이터를 매우 효율적으로 압축합니다. 경우에 따라 20%~90%의 용량을 아낄 수 있습니다. Huffman code는 prefix-free* codes로 표현됩니다. prefix-free코드는 어떠한 문자라도 항상 최적의 데이터 압축을 보장합니다. (*prefix code..
2023.05.18
TIL
no image
[NextJs] Component
Client Component파일 최상단(중간x)에 **‘use client’**라 적으면 그 아래 생성한 컴포넌트는 모두 client 컴포넌트이다.HTML에 Javascript 기능넣기가 가능하다.useState, useEffect 등 사용 가능Server Component아무 곳에서 만든 component는 모두 server 컴포넌트가 될 수 있다.HTML에 Javascript 기능넣기가 불가능하다.ex) onClick={}useState, useEffect 등 사용할 수 없음.그럼 그냥 Client Component가 좋은거 아닌가?기능적 제한이 server component에 비해 없어서 개발하기는 편하다.Page 로딩 속도 느리다.Javascript가 많이 필요하기 때문이다.Hydration이 ..
2023.05.16
no image
백준 4779번 c++ 풀이
문제 칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고, 다음과 같은 과정을 통해서 칸토어 집합의 근사를 만들어보자. 1. -가 3N개 있는 문자열에서 시작한다. 2. 문자열을 3등분 한 뒤, 가운데 문자열을 공백으로 바꾼다. 이렇게 하면, 선(문자열) 2개가 남는다. 3. 이제 각 선(문자열)을 3등분 하고, 가운데 문자열을 공백으로 바꾼다. 이 과정은 모든 선의 길이가 1일때 까지 계속 한다. 예를 들어, N=3인 경우, 길이가 27인 문자열로 시작한다. --------------------------- 여기서 가운데 문자열을 공백으로 바꾼다. ---------..
2023.04.30
no image
백준 24060번 c++ 풀이
문제 오늘도 서준이는 병합 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 병합 정렬로 배열 A를 오름차순 정렬할 경우 배열 A에 K 번째 저장되는 수를 구해서 우리 서준이를 도와주자. 크기가 N인 배열에 대한 병합 정렬 의사 코드는 다음과 같다. merge_sort(A[p..r]) { # A[p..r]을 오름차순 정렬한다. if (p < r) then { q
2023.04.29
no image
백준 25501번 c++ 풀이
문제 정휘는 후배들이 재귀 함수를 잘 다루는 재귀의 귀재인지 알아보기 위해 재귀 함수와 관련된 문제를 출제하기로 했다. 팰린드롬이란, 앞에서부터 읽었을 때와 뒤에서부터 읽었을 때가 같은 문자열을 말한다. 팰린드롬의 예시로 AAA, ABBA, ABABA 등이 있고, 팰린드롬이 아닌 문자열의 예시로 ABCA, PALINDROME 등이 있다. 어떤 문자열이 팰린드롬인지 판별하는 문제는 재귀 함수를 이용해 쉽게 해결할 수 있다. 아래 코드의 isPalindrome 함수는 주어진 문자열이 팰린드롬이면 1, 팰린드롬이 아니면 0을 반환하는 함수다. #include #include int recursion(const char *s, int l, int r){ if(l >= r) return 1; else if(s[l..
2023.04.28
no image
백준 27433번 c++ 풀이
문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 N!을 출력한다. 풀이 이 문제는 재귀에 대한 기본적인 내용을 담고 있다. 다만 주의할 점은 입력의 범위를 확인하고 int로 표현할 수 있는 수의 범위를 넘어가는 것을 알아야 한다.
2023.04.28
no image
What is Database?
Database Organized collection of inter-related data that models some aspect of the real-world. Databases are the core component of most computer applications. Flat File Strawman (strawman은 잘 동작하지 않을 것을 의미함.) Store our database as comma-separated value(CSV) files that we manage ourselves in our application code. Use a separate file per entity. The application must parse the files each time they w..
2023.04.13
TIL
no image
[CSS] vw, vh란?
☺️ vw와 vh란? CSS 작업을 할 때, 주로 사용하는 단위는 픽셀(px)이다. 하지만, px는 고정 단위이고 이를 대신해 유동 단위인 %를 사용하면 조금 더 유연한 코드를 만들 수 있다. 예를 들어, width: 50%로 지정해두면 항상 부모의 절반 사이즈를 가지니까 이것 역시 좋은 반응형 CSS이다. %말고도 유연한 값을 가지는 단위들 중 vw, vh를 알아보자. v, 뷰포트를 기준으로 하다. 이들의 풀네임은 Viewport Width / Viewport Height 이다. 이름에서 유추할 수 있듯이 뷰포트를 기준으로 한 단위이다. 뷰포트는 ‘보여지는 영역’이라고 했으니, 결국 보여지는 영역에서 얼마만큼 차지할 것인지를 지정하는 단위라 할 수 있다. 1vw = 뷰포트 너비의 1%로 계산된다. 그렇..
2023.04.10
no image
[Algorithm] Merge sort & Quick sort
Merge sort Implementation Divide 하나의 배열을 반으로 나눠 2개의 배열로 만든다. Conquer Subarray가 충분히 작아졌다면, 정렬시킨다. Subarray가 충분히 작지 않다면, Recursion Merge 정렬된 subarray를 합쳐서 하나의 배열로 만든다. Pseudo code // 위의 그림과 함께 보면 이해하기 쉽다. public static void mergeSort(int n, keytype[] S) { if(n > 1) { // 1개일 때는 할 것이 없음. const int h = floor(n/2), m = n-h; // 반으로 나눔. keytype[] U = new keytype[1...h]; keytype[] V = new keytype[1...m];..
2023.03.30
TIL
no image
Optional Chaining(옵셔널 체이닝)이란?
const name = person && person.name;​ JavaScript에서 optional chaining은 프로퍼티나 메소드를 참조할 때 발생할 수 있는 에러를 방지하기 위한 문법입니다. 이전에는 다음과 같은 방식으로 프로퍼티를 참조했습니다. const name = person && person.name; 위와 같은 코드는 person이 null이나 undefined일 경우, name 변수는 undefined가 되어 프로그램이 중단될 수 있습니다. 이 문제를 해결하기 위해 optional chaining 연산자(?.)가 등장하였습니다. optional chaining을 사용하면 다음과 같은 코드로 에러를 방지할 수 있습니다. const name = person?.name; 위 코드에서 p..
2023.03.07
no image
[React] useRef란?
useRef란 뭘까요? React는 사용자 인터페이스를 만드는 데 필요한 많은 기능을 제공합니다. 그 중 하나가 useRef입니다. useRef는 React Hook 함수 중 하나로, DOM 노드나 다른 React 요소에 대한 참조를 만들기 위해 사용됩니다. React를 처음 시작하는 사람들은 이 개념이 어려울 수 있지만, 간단한 예제를 통해 이해해 보도록 하겠습니다. 예제를 위해, 다음과 같은 코드를 작성합니다. import React, { useRef } from 'react'; function TextInput() { const inputRef = useRef(null); const handleClick = () => { inputRef.current.focus(); }; return ( Focus..
2023.03.04
no image
동기 vs 비동기
동기와 비동기는 프로그래밍에서 중요한 개념 중 하나입니다. 이 둘은 서로 다른 실행 방식을 갖고 있고, 이를 이해하는 것은 프로그래밍에서 매우 중요합니다. 동기적 실행은 각 작업이 순서대로 실행되는 것을 의미합니다. 이것은 일련의 작업 중 하나가 완료될 때까지 다음 작업이 시작되지 않음을 의미합니다. 즉, 코드의 실행이 차단될 수 있습니다. 이는 작업이 오래 걸리거나 중단되는 경우에 문제가 될 수 있습니다. 비동기적 실행은 작업이 순차적으로 실행되지 않는 것을 의미합니다. 대신, 작업은 병렬로 실행됩니다. 비동기 코드는 대개 콜백 함수나 프로미스를 사용하여 처리됩니다. 이러한 방식으로 비동기적 실행은 코드의 차단을 방지할 수 있으므로 응용 프로그램의 반응성을 향상하고, 더 많은 작업을 더 빠르게 처리할 ..
2023.03.02
TIL
no image
React Hook Form에 대해 알아보자.
React Hook Form은 간편하고 유연한 방식으로 React 애플리케이션에서 폼을 다룰 수 있는 라이브러리입니다. 이를 사용하면 복잡한 폼 로직을 작성하는데 드는 시간과 노력을 줄일 수 있습니다. 이번 글에서는 React Hook Form의 사용법과 예시를 소개하겠습니다.  React Hook Form 사용법 React Hook Form은 useForm이라는 Hook 함수를 제공합니다. 이 Hook 함수를 사용하여 폼을 관리하고, 입력값의 유효성 검사와 전송 처리를 수행할 수 있습니다. 아래는 React Hook Form을 사용하여 간단한 폼을 만드는 예시입니다. import React from 'react';import { useForm } from 'react-hook-form';function..
2023.02.25
콜백 함수란? (Callback function)
콜백 함수(Callback Function)는 함수를 매개변수로 받아들여 다른 함수 내에서 실행되는 함수입니다. 이는 JavaScript에서 비동기 프로그래밍을 가능하게 하는 핵심적인 개념 중 하나입니다. 예를 들어, JavaScript에서 setTimeout() 함수는 일정 시간이 지난 후에 함수를 실행합니다. 이 함수는 첫 번째 매개변수로 실행할 함수를 받고, 두 번째 매개변수로 지연 시간(밀리초)을 받습니다. 이때, 첫 번째 매개변수로 전달하는 함수는 콜백 함수입니다. setTimeout(() => { console.log('Hello, world!'); }, 1000); 위 예제에서는 setTimeout() 함수가 1초(1000밀리초) 후에 실행되고, 첫 번째 매개변수로 전달된 함수가 실행됩니다...
2023.02.24
no image
DOM이란?
DOM이란 무엇일까요? DOM (Document Object Model)은 HTML, XML 및 XHTML 문서를 나타내는 표준 프로그래밍 인터페이스입니다. 이를 사용하여 웹 페이지의 모든 콘텐츠, 구조 및 스타일을 변경하고 조작할 수 있습니다. DOM은 문서를 노드 (node)로 나눕니다. 각 노드는 객체로 표현되며, 문서의 요소, 속성, 텍스트 노드, 주석 등을 포함합니다. 이러한 노드들은 계층 구조로 구성되어 있으며, 부모 노드와 자식 노드 간의 관계를 가집니다. DOM API는 다양한 방법으로 문서의 노드를 선택하고 조작할 수 있습니다. 이를 통해 특정 요소의 콘텐츠를 변경하거나 스타일을 조정할 수 있습니다. DOM API는 또한 이벤트 처리, 애니메이션 및 AJAX와 같은 고급 기술에 사용됩니다..
2023.02.16
no image
Flexbox의 모든 것 (display: flex)
Flexbox란? Flexbox는 아이템들을 행 또는 열로 자유자재로 배치시킬 수 있는 정말 정말 유연한 녀석입니다. CSS의 꽃이라고 불리는 Flexbox 녀석을 오늘 자세하게 뜯어보겠습니다. ex) 박스가 커지면 박스 속의 각각의 아이템들이 어떤 식으로 커지면서 박스의 공간을 메워야 하는지 박스가 작아지면 박스 속의 아이템들이 어떻게 작아져서 유연하게 박스 안에서 배치되어야 하는지 위의 두 가지를 자유롭게 정의할 수 있고 너무너무 쉽게 이 모든 것들을 가능하게 해주는 것이 바로 “Flexbox”입니다. flexbox만 잘 이해하셔도 웹사이트의 layout을 아주 쉽게 구성할 수 있습니다. 너무나 쉽고 간단한 flexbox… 저와 같이 오늘 부숴버리도록 해보겠습니다. 예전에는 position, floa..
2023.02.15
no image
Layout: display와 position
웹사이트를 만들 때, 가장 중요한 것은 무엇일까요? ⇒ 우리가 이전 시간에 정의했던 박스들을 원하는 위치에 원하는 사이즈로 배치할 수 있는 것이 가장 중요합니다. 이것을 하기 위해서는 CSS에서 가장 기본이 되는 display와 position에 대해서 아는 것이 중요합니다. 이것이 사실 간단해 보여서 쉬워 보일 수 있지만, 현업에서는 박스 위에 박스가 올려져 있는 stacking이 많은 상태에서 display와 position을 잘 이해하지 못하면 금방 무너져 내릴 수 있습니다. (라고 현업에 계신 분이 말함.) display와 position은 끝낸다는 마음으로 정리를 시작해 보겠습니다. display 오늘은 실습을 통해서 진행해 보겠습니다. (같이 실습을 하고 싶다면 jsbin.com에서 하실 수 ..
2023.02.13
no image
Selector란? (feat. margin, padding)
Selectors란? html에 어떤 tag들을 고를 것인지에 대한 규정하는 문법입니다. * : 모든 태그에 적용 Tag : 해당 태그만 적용 #id : 해당 id만 적용 .class : 해당 class만 적용 : :태그 옆에 state 작성 가능 [] : 태그 옆에 attribute 작성 가능 다음과 같은 형식으로 작성하면 끝! CSS 문법은 어려운 것이 없습니다 :) /*selector { property: value; }*/ * { color: green; } li { color: pink; } .red { width: 100px; height: 100px; background: yellow; } button:hover { color: red; background: beige; } a[href^="..
2023.02.12
no image
CSS란?
CSS란? Cascading Style Sheet의 약자입니다. Style Sheet은 스타일을 잘 정리한 문서 한 장을 의미합니다. Cascading은 작은 폭포, 연속화 등등 연속해서 떨어지는 느낌을 준다고 생각하면 됩니다. Cascading은 세부적으로 정의된 것이 있다면 그것을 사용하고 정의된 것이 없다면 기본으로 정의된 다음 것으로 넘어가는 것을 얘기합니다. 웹 사이트를 스타일링할 때, 총 크게 3가지로 나뉩니다. Author style 우리가 작성하는 style sheet(.css 파일) User style 사용자의 취향에 맞게 스타일링의 변경하는 것(ex. 다크모드) Browser 브라우저 상에서 기본적으로 지정된 스타일 Cascading은 우리가 지정한 스타일(Author style)이 최..
2023.02.12
no image
백트래킹(Backtracking)
모든 경우의 수를 전부 고려하는 알고리즘. 백트래킹(backtracking)이란? : 해를 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법을 말합니다. 최적화 문제와 결정 문제를 푸는 방법이 됩니다. 상태공간을 트리로 나타낼 수 있을 때 적합한 방식입니다. 일종의 트리 탐색 알고리즘이라고 봐도 됩니다. 방식에 따라서 * 깊이우선탐색(Depth First Search, DFS) * 너비우선탐색(Breadth First Search, BFS) * 최선 우선 탐색(Best First Search/Heuristic Search) (그냥 뇌없이 짤 수 있다는 것이 장점입니다.) DFS와 Backtracking * DFS(깊이 우선 탐색) : DFS는 가능한 모든 경로(후보)를 탐색합니다. 따..
2023.02.08
TIL
no image
시간복잡도(Time Complexity)
알고리즘의 시간복잡도 우리는 살면서 어떤 목적지로 이동할 때 대부분 최단거리를 찾아서 이동을 합니다. 프로그래밍에서도 시간복잡도가 가장 낮은 알고리즘을 채택하여 실행시간을 단축하려고 노력합니다. 시간 복잡도는 알고리즘의 수행 시간을 나타내는 측정 방법입니다. 특정 입력 크기에 대한 알고리즘의 수행 시간을 분석하여, 알고리즘의 효율성을 판단하는 데 사용됩니다. 보통 "O(n)" 표기법을 사용하여 표시하며, n은 입력 크기를 나타냅니다. 예를 들어, O(1) - 상수 시간 복잡성: 입력 크기에 관계없이 항상 동일한 시간이 걸리는 알고리즘입니다. (예: 인덱스를 사용하여 배열에서 요소 검색) O(n) - 선형 시간 복잡성: 입력 크기에 따라 실행 시간이 선형으로 증가하는 알고리즘입니다. (예: 배열의 선형 검..
2023.01.31
TIL
no image
구현(Implementation Algorithm)
구현이란? 구현이란 말 그대로 문제를 파악하고 소스코드로 바꾸는 과정입니다. 사실 어떤 문제를 풀든 생각한 것을 소스코드로 바꾸는 과정은 필수입니다. 그렇기 때문에 구현 문제 유형은 모든 범위 코딩 테스트 유형을 포함하고 있는 개념입니다. [문제] 다음과 같이 문자열을 선언했다고 하고 아래의 문제를 풀어보겠습니다. Q1. 앞에서부터 3개의 문자열을 출력하라. Q2. 해당 문자열을 거꾸로 해서 출력하라. Q3. 해당 문자열 끝에 "Yeom"이란 문자열을 추가하라. 라고 하면 다음과 같이 코드를 구현할 것입니다. [풀이 1] 위의 코드에서는 크게 어려운 점이 없습니다. [풀이 2] 풀이 2와 풀이 1의 차이는 함수의 사용 여부입니다. 범위가 크거나 복잡한 문제였다면 풀이 2의 소스코드처럼 함수를 사용하는 것..
2023.01.13
TIL
no image
누적합 Prefix Sum
누적합이란 누적합이란 요소들의 누적된 합의 의미로 어떠한 배열을 기반으로 앞에서 부터 요소들의 누적된 합을 저장해 새로이 배열을 만들어서 이를 활용하는 것을 말합니다. 항상 문제를 풀 때는 최대, 최소 범위를 확인하고 생각을 해봅시다. "구간 쿼리" 하면 2가지가 생각나야 합니다. 팬윅트리(동적 배열) pSum(정적 배열) [핵심] 처음과 끝의 합은 변하지 않습니다.(정적 배열이기 때문입니다.) 매번 더할 필요없이 각 구간에 맞게 뺄셈만 해주면 됩니다. [코드 1] 이 코드는 위의 핵심을 완전히 파악하지 못하고 작성한 코드입니다. 처음에 문제를 풀 때, 입력 받는 인덱스를 임의로 tempStart/tempEnd에 저장하고 다음에 입력받는 인덱스와 비교했을 때 경우를 나누어서 진행했습니다. 예를 들어, '..
2023.01.12
TIL
no image
백준 2581번 c++ 문제 풀이
[문제] & [결과] [해설] 이 문제는 두 수를 입력받고 그 두 수 사이에서 소수를 골라서 소수들의 합과 소수들의 최솟값을 구하는 문제이다. 아래의 코드의 메커니즘은 이렇다. 먼저 두 수를 입력받으면 두 수 사이에서 반복문을 시행한다. 이중반복문을 이용하여 i 변수를 j 변수로 나눠서 나머지가 0이라면 cnt값을 증가시켜준다. 이유는 간단하다. 소수는 나누어서 나머지가 0인 수가 자기자신 밖에 없기 때문이다. 1은 기본적으로 소수가 아니기 때문에 제외시켰다. 그래서 j도 2부터 시작하는 것이다. 2부터 시작했기 때문에 cnt가 1일 때, sum 변수에 값들을 더해준다. 그리고 이전에 초기화해놓았던 min 변수와 비교하면서 min보다 더 작은 수라면 min변수를 계속 업데이트 시켜준다. 그렇게 sum이 ..
2022.02.24
no image
백준 2501번 c++ 문제 풀이
[문제] & [결과] [해설] 이 문제는 제목에서 알 수 있듯이 어떤 특정 수의 약수를 구하는 문제이다. 문제에서 보면 약수의 특성을 알려주는데, 바로 특정한 수를 특정한 수의 약수로 나누면 나머지가 0인 것이다. 그런데, 문제는 단순히 약수가 무엇인지 묻는 것이 아니라 K번째로 작은 수를 출력하도록 원한다. K번째로 작은 수를 출력하기 위해서는 데이터가 정렬되어있거나 약수를 작은 순서대로 저장해놓는 방법이있다. 필자는 두 번째 방법을 이용했다. 그래서 vector을 이용해 반복문 i=1부터 비교해가면서 vector에 값을 저장했다. if(n%i==0)을 보면 이 조건을 만족할 때, vector에 저장하는 것을 알 수 있다. cnt는 출력의 세부 조건에 특정한 수의 약수의 개수가 K보다 작을 때 0을 출..
2022.02.24
no image
백준 2576번 c++ 문제 풀이
[문제] & [결과] [해결] 이 문제는 벡터를 이용해서 홀수를 만족했을 때, 벡터에 넣어준다. 그리고 홀수가 없을 경우를 대비해, cnt라는 변수를 만들어줘 cnt가 0이면 -1을 출력한다. algorithm 라이브러리에 있는 min함수를 이용해 최솟값을 구한다.
2022.02.23