전체 글

주제 상관없이 작성하고 싶은 글들을 작성합니다.
문제 링크 : https://leetcode.com/problems/linked-list-cycle/ 문제 연결리스트가 순환하는지에 대한 여부를 판별하는 문제 입력 head = [3,2,0,-4] 와 같은 연결리스트의 head를 함수의 매개변수로 준다. 출력 순환하면 true, 순환하지 않으면 false를 리턴 접근방식 floyd's tortoise and hare 이라는 알고리즘을 이용해서 해결했다. 한글로 번역하면, 토끼와 거북이라는 알고리즘인데, 2개의 포인터의 이동하는 속도가 다른 걸 이용해서 연결리스트의 순환 여부를 판단한다. 재밌는 알고리즘이다. 코드 bool hasCycle(struct ListNode *head) { struct ListNode* turtle; struct ListNode*..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 소수를 판별하는 방법만 알면, 비교적 간단하게 풀 수 있다. 소수를 판별하는 방법에서는 여러가지 알고리즘이 있지만, 여기서는 제곱근을 이용하는 방법을 사용했다. 제곱근을 이용한 소수 판별 어떤 곱으로 이루어진 수는 제곱근을 기준으로 대칭적으로 구성됩니다. 12를 예로 들어봅시다. 12의 약수는 [1, 2, 3, 4, 6, 12]..
동적할당 코드를 작성하면서 최적화라던지 여러가지 이유로 런타임에 배열의 크기를 결정해야 할 때가 있습니다. 그럴 때 동적할당을 하게 되는데, C++에서 1차원배열인 경우와 2차원배열은 경우의 작성 코드에 차이가 있어서 한번 소개해 보려고 합니다. 예제 우선 크기가 5인 일차원 배열을 선언하는 경우의 코드입니다. int* arr = new int[5]; //크기가 5인 일차원 배열 동적할당 일차원 배열의 경우에는 그냥 간단히 new 키워드를 이용해서 위와 같이 선언하면 됩니다. 2차원 배열의 경우에는 살짝 다릅니다. 2차원 배열의 경우에는 2중 포인터를 사용합니다. 아래의 그림을 보면 좀 더 잘 이해할 수 있을 것입니다. 아래의 그림은 3X4 이차원 배열입니다. arr의 각각의 인덱스들이 일차원 배열을 가..
문제 링크 : https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤..
문제 링크 : https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때..
아무것도 설치되어 있지 않은 윈도우 환경이 필요할 때가 있습니다. 저의 경우에는 인터넷 뱅킹을 하거나 광공서 홈페이지를 부득이하게 사용할 일이 있을 때, 각종 보안 프로그램들을 설치해야 하는데 지우기도 굉장히 번거롭고, 컴퓨터도 느려지게 하므로 가상 머신을 종종 사용합니다. 가상머신은 글자 그대로 소프트웨어로 컴퓨터 안에 하나의 컴퓨터를 구현하는 거라고 생각하면 됩니다. 하나의 컴퓨터에 여러개의 OS를 구동할 수 있습니다. 버츄얼박스라고 하는 오라클의 소프트웨어를 이용해서 가상 윈도우 환경을 구현해보겠습니다. 구현하기 전 확인 사항 현재 자신의 컴퓨터 환경에서 가상화 기술을 지원하는지부터 확인해야 합니다. cpu에 따라서 이름은 다르겠지만, 64비트의 가상머신을 위해서는 Intel VT-x 또는 AMD-..
안녕하세요. 오늘은 알아두면 유용한 C++의 Pair 클래스를 소개해겠습니다. 1. pair 클래스 Pair 클래스는 사용자가 지정한 2개의 타입의 데이터를 저장하는데 사용합니다. 서로 연관된 2개의 데이터를 한 쌍으로 묶어서 다룰 때 사용하면 편리합니다. 제가 Pair 클래스를 알기 전에는 서로 연관된 2개의 데이터를 다룰 때, 구조체를 따로 정의했었습니다. 여간 번거로운게 아니었습니다. 그러나!!! Pair 클래스를 이용함으로써 서로 다른 2개의 연관된 2개의 데이터를 편리하게 관리할 수 있게 되었습니다. 2. pair의 헤더파일 pair 클래스는 #include 라는 헤더파일에 존재하는 STL입니다. #include // pair의 헤더파일 그러나, 저는 pair를 사용할 때, #include 를 ..
출처 : learnopengl.com/ Learn OpenGL, extensive tutorial resource for learning Modern OpenGL Welcome to OpenGL Welcome to the online book for learning OpenGL! Whether you are trying to learn OpenGL for academic purposes, to pursue a career or simply looking for a hobby, this book will teach you the basics, the intermediate, and all the advanced kn learnopengl.com 원문 : learnopengl.com/Getting-start..
ya_ya
기록노트