HEADLINE
2024 예술적인 소프트웨어 프로젝트 : Project GK
2024 SWF 프로젝트 : Project RM
알고리즘 공부
[후기] BOJ C++, 200일의 에필로그
[후기] BOJ C++, 200일의 에필로그
알고리즘 공부
2026.05.28 15:14
군 생활을 하며 지난 200일동안 백준을 하루에 한 문제 이상씩 풀어왔다.백준이 서비스를 종료한 지금 생각해보면 어떻게 했지 싶다가도, 재미있게 풀었던 기억이 많아서 다시 하라면 다시 할 수 있을 것 같은 마음이 든다. 200일을 달려왔지만 얻은건 백준의 서비스 종료 소식이라서 아쉬운 마음이 있지만, 이것만 얻은 것은 아니다.긴 시간이라면 긴 시간동안 많은 것을 얻었다. 본격적으로 후기를 작성해보기 전에, 대체 그 200일동안 뭘 했는지 한번 끄적여보려고 한다. ※ 스트릭 기준은 solved.ac로 정했다.보직 특성상 밤샘도 있고, 불규칙적인 생활을 해서 00시에 초기화되는 스트릭에는 도저히 맞출 수가 없었다.그래서 06시에 초기화되는 solved.ac 스트릭이 나의 근무 시간이나 군 내 생활 패턴이랑 ..
[BOJ C++] 1113번 - 수영장 만들기
[BOJ C++] 1113번 - 수영장 만들기
알고리즘 공부
2026.03.18 13:03
백준 1113번 - 수영장 만들기문제더보기지민이는 수영장을 만들려고 한다. 수영장을 만들 곳의 크기는 N*M이고, 각 칸은 직육면체이다. 따라서, 각 칸의 직육면체의 높이가 쓰여 있는 다음과 같은 땅을 생각할 수 있다. 166616111616661이 수영장은 15만큼의 물이 들어있는 수영장을 만들 수 있다. 가운데 3개의 칸에 5만큼 물을 채우면 되기 때문이다. 자 이제 가운데 물을 더 추가했다고 생각하면, 벽(높이가 6인 직육면체)을 넘어서 밖으로 나갈 것이다. 물은 항상 높이가 더 낮은 곳으로만 흐르고, 직육면체 위의 표면에는 물이 없다. 그리고, 땅의 높이는 0이고, 땅은 물을 무한대로 흡수 할 수 있다. 땅의 모양이 주어질 때, 수영장에 물이 얼마만큼 있을 수 있는지 구하는 프로그램을 작성하시오...
[BOJ C++] 1202번 - 보석 도둑
[BOJ C++] 1202번 - 보석 도둑
알고리즘 공부
2026.03.18 12:19
백준 1202번 - 보석 도둑문제더보기세계적인 도둑 상덕이는 보석점을 털기로 결심했다. 상덕이가 털 보석점에는 보석이 총 N개 있다. 각 보석은 무게 Mi와 가격 Vi를 가지고 있다. 상덕이는 가방을 K개 가지고 있고, 각 가방에 담을 수 있는 최대 무게는 Ci이다. 가방에는 최대 한 개의 보석만 넣을 수 있다. 상덕이가 훔칠 수 있는 보석의 최대 가격을 구하는 프로그램을 작성하시오.입력더보기첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci ≤ 100,000,000) 모든 숫자는 양의 정수이다.출력더보..
[BOJ C++] 2169번 - 로봇 조종하기
[BOJ C++] 2169번 - 로봇 조종하기
알고리즘 공부
2026.03.17 06:54
백준 2169번 - 로봇 조종하기문제더보기NASA에서는 화성 탐사를 위해 화성에 무선 조종 로봇을 보냈다. 실제 화성의 모습은 굉장히 복잡하지만, 로봇의 메모리가 얼마 안 되기 때문에 지형을 N×M 배열로 단순화 하여 생각하기로 한다. 지형의 고저차의 특성상, 로봇은 움직일 때 배열에서 왼쪽, 오른쪽, 아래쪽으로 이동할 수 있지만, 위쪽으로는 이동할 수 없다. 또한 한 번 탐사한 지역(배열에서 하나의 칸)은 탐사하지 않기로 한다. 각각의 지역은 탐사 가치가 있는데, 로봇을 배열의 왼쪽 위 (1, 1)에서 출발시켜 오른쪽 아래 (N, M)으로 보내려고 한다. 이때, 위의 조건을 만족하면서, 탐사한 지역들의 가치의 합이 최대가 되도록 하는 프로그램을 작성하시오.입력더보기첫째 줄에 N, M(1≤N, M≤1,0..
[BOJ C++] 1708번 - 볼록 껍질
[BOJ C++] 1708번 - 볼록 껍질
알고리즘 공부
2026.03.15 18:55
백준 1708번 - 볼록 껍질문제더보기다각형의 임의의 두 꼭짓점을 연결하는 선분이 항상 다각형 내부에 존재하는 다각형을 볼록 다각형이라고 한다. 아래 그림에서 (a)는 볼록 다각형이며, (b)는 볼록 다각형이 아니다.조금만 생각해 보면 다각형의 모든 내각이 180도 이하일 때 볼록 다각형이 된다는 것을 알 수 있다. 편의상 이 문제에서는 180도 미만인 경우만을 볼록 다각형으로 한정하도록 한다.2차원 평면에 N개의 점이 주어졌을 때, 이들 중 몇 개의 점을 골라 볼록 다각형을 만드는데, 나머지 모든 점을 내부에 포함하도록 할 수 있다. 이를 볼록 껍질 (CONVEX HULL) 이라 한다. 아래 그림은 N=10인 경우의 한 예이다.점의 집합이 주어졌을 때, 볼록 껍질을 이루는 점의 개수를 구하는 프로그램을..
[알고리즘] 볼록 껍질 (Convex Hull)
[알고리즘] 볼록 껍질 (Convex Hull)
알고리즘 공부
2026.03.15 18:46
알고리즘 분류 : [ 기하학 ]개념볼록 껍질 (Convex Hull) 은 2차원 평면 상에 여러 점에 대해, 나머지 점들을 모두 감싸는 제일 바깥점으로 만드는 볼록 다각형을 말한다.예를 한 번 들어보면,이런 점들이 있을 때, 이런 모든 점을 감싸는 볼록 다각형 (볼록 껍질) 을 찾는 것이다.이 상황만 보고 이 알고리즘의 구조를 간단히 생각해보면, 이렇게 생각할 수 있다.점들의 무리 중 가장 아래에 있는 것을 기준점으로 잡고그 기준점에서 점들이 있는 반대 방향으로 직선을 쏴서시계 또는 반시계방향으로 돌리다가그 직선과 처음 만나는 어느 한 점이 있을 것이다.그렇다면 그 점은 모든 점들 중에 가장 바깥에 있는 점일 것이다.이 작업을 만나는 바깥 점에 대해 모두 실행하면 볼록 껍질을 이루는 점들을 찾아낼 수 있..
[BOJ C++] 13144번 - List of Unique Numbers
[BOJ C++] 13144번 - List of Unique Numbers
알고리즘 공부
2026.03.09 12:06
백준 13144번 - List of Unique Numbers문제더보기길이가 N인 수열이 주어질 때, 수열에서 연속한 1개 이상의 수를 뽑았을 때 같은 수가 여러 번 등장하지 않는 경우의 수를 구하는 프로그램을 작성하여라.입력더보기첫 번째 줄에는 수열의 길이 N이 주어진다. (1 ≤ N ≤ 100,000)두 번째 줄에는 수열을 나타내는 N개의 정수가 주어진다. 수열에 나타나는 수는 모두 1 이상 100,000 이하이다.출력더보기조건을 만족하는 경우의 수를 출력한다.문제 접근이 문제는 투 포인터를 이용해 접근했다. 처음에는 중복되는 수를 입력받으면 여태 입력받았던 것들을 모두 없애고 새로 경우의 수를 저장하는 로직으로 했는데, 문제가 있었다.1 2 3 1 2 같은 입력에서 1이 중복으로 입력되었지만, 2 ..
[BOJ C++] 22251번 - 빌런 호석
[BOJ C++] 22251번 - 빌런 호석
알고리즘 공부
2026.03.04 15:57
백준 22251번 - 빌런 호석문제더보기치르보기 빌딩은 1층부터 N층까지 이용이 가능한 엘리베이터가 있다. 엘리베이터의 층수를 보여주는 디스플레이에는 K 자리의 수가 보인다. 수는 0으로 시작할 수도 있다. 0부터 9까지의 각 숫자가 디스플레이에 보이는 방식은 아래와 같다. 각 숫자는 7개의 표시등 중의 일부에 불이 들어오면서 표현된다.예를 들어 K=4인 경우에 1680층과 501층은 아래와 같이 보인다.빌런 호석은 치르보기 빌딩의 엘리베이터 디스플레이의 LED 중에서 최소 1개, 최대 P개를 반전시킬 계획을 세우고 있다. 반전이란 켜진 부분은 끄고, 꺼진 부분은 켜는 것을 의미한다. 예를 들어 숫자 1을 2로 바꾸려면 총 5개의 LED를 반전시켜야 한다. 또한 반전 이후에 디스플레이에 올바른 수가 보여..
[BOJ C++] 2668번 - 숫자고르기
[BOJ C++] 2668번 - 숫자고르기
알고리즘 공부
2026.03.04 15:45
백준 2668번 - 숫자고르기문제더보기세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절히 뽑으면, 그 뽑힌 정수들이 이루는 집합과, 뽑힌 정수들의 바로 밑의 둘째 줄에 들어있는 정수들이 이루는 집합이 일치한다. 이러한 조건을 만족시키도록 정수들을 뽑되, 최대로 많이 뽑는 방법을 찾는 프로그램을 작성하시오. 예를 들어, N=7인 경우 아래와 같이 표가 주어졌다고 하자.이 경우에는 첫째 줄에서 1, 3, 5를 뽑는 것이 답이다. 첫째 줄의 1, 3, 5밑에는 각각 3, 1, 5가 있으며 두 집합은 일치한다. 이때 집합의 크기는 3이다. 만약 첫째 줄에서..
[BOJ C++] 2493번 - 탑
[BOJ C++] 2493번 - 탑
알고리즘 공부
2026.02.26 01:19
백준 2493번 - 탑문제더보기KOI 통신연구소는 레이저를 이용한 새로운 비밀 통신 시스템 개발을 위한 실험을 하고 있다. 실험을 위하여 일직선 위에 N개의 높이가 서로 다른 탑을 수평 직선의 왼쪽부터 오른쪽 방향으로 차례로 세우고, 각 탑의 꼭대기에 레이저 송신기를 설치하였다. 모든 탑의 레이저 송신기는 레이저 신호를 지표면과 평행하게 수평 직선의 왼쪽 방향으로 발사하고, 탑의 기둥 모두에는 레이저 신호를 수신하는 장치가 설치되어 있다. 하나의 탑에서 발사된 레이저 신호는 가장 먼저 만나는 단 하나의 탑에서만 수신이 가능하다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 개의 탑이 수평 직선에 일렬로 서 있고, 모든 탑에서는 주어진 탑 순서의 반대 방향(왼쪽 방향)으로 동시에 레이저 신호를 발사한..
싱글벙글 사이드 프로젝트
[2024-2 겜엔기] Project AS 개발일지 #4
[2024-2 겜엔기] Project AS 개발일지 #4
Side Project
2024.11.01 23:30
저번에는 플레이어의 기본 공격을 구현했었다.그래서 이번에는 플레이어의 스킬을 구현했다.스킬은 총 4가지가 있고, 그 중 일단 Q스킬 1가지만 중간 발표 전까지 구현하는 것이 목표였는데,과연 목표를 달성했을까?적 탐지설명하기에 앞서, Q스킬은 롤의 카이사 Q스킬 처럼 유도탄을 발사해 데미지를 입히는 것이다.그러려면, 자신 주위의 적들이 얼마나 있는지 일단 파악하여 그 적들을 변수든 리스트든 어떤 방식으로든 저장해야한다. 나는 가장 간단한 방법을 선택했다.플레이어에게 탐지 범위만큼의 트리거 형식의 콜리전을 주고, 거기에 들어오면 리스트에 넣었다가 다시 나가면 리스트에서 지워주는 것이다.그리고, 적을 저장하기 위해 액터 오브젝트 리스트 변수를 하나 만들어 거기에 저장과 삭제를 해줬다.여기에 새로 사용한 노드 ..
[2024-2 겜엔기] Project AS 개발일지 #3
[2024-2 겜엔기] Project AS 개발일지 #3
Side Project
2024.10.07 22:29
저번 개발때 플레이어 이동을 구현해서, 이번에는 플레이어 공격을 구현해보았다.단순하긴 해도 애니메이션을 직접 블루프린트 내에서 다루는 경험은 이번이 처음이라 조금 헤매기도 한 것 같다. 그럼 결과물은 어떨까?Hit ScanHit Scan(히트 스캔)이란, FPS에서 사용되는 공격 판정 방식이다.보통 총기류로 공격을 하면 현실에서는 투사체가 날아가면서 대상을 공격하지만, 게임에서는 연산 속도가 있기 때문에 현실만큼 빠른 속도를 적용한 투사체를 날리면 그 속도를 연산 속도가 못따라가서 판정이 잘 안되는 경우가 있다.이럴 때에는 투사체를 날리는 것 대신, 공격 명령이 들어오면 그 즉시 바라보는 대상에게 피격 판정을 내려버리는 시스템을 사용하는데, 이것이 히트 스캔이다.예를 들자면 오버워치의 위도우메이커, 캐서..
[2024-2 겜엔기] Project AS 개발일지 #2
[2024-2 겜엔기] Project AS 개발일지 #2
Side Project
2024.09.29 01:46
저번에 개발을 위한 모든 세팅을 끝내고, 이번에는 진짜 개발에 착수했다.이번에 목표로 한 것은 플레이어의 이동을 완벽히 하는 것이다. 목표를 과연 달성했을까?Aim OffsetFPS 장르이기에 에임 구현은 무엇보다도 필수이다. 그리고 투사체 구현은 나중이기 때문에, 일단 플레이어 캐릭터가 내가 마우스를 돌리는 시점을 보게 하는 것을 구현해야함을 느꼈다.구글에 정말 여러가지 검색을 한 끝에, 이러한 것을 Aim Offset이라고 부른다는것을 알게 되었다.Aim Offset을 정확히 설명하자면, '캐릭터의 상반신 움직임이 에임을 따라오게 하는 것' 이다.그래서, 에셋에서 기본 제공되는 걸 이용해서 에임을 따라오게끔 해줬다.일단 이 블루프린트는 에셋에서 주는 기본 애니메이션 BP이다. 근데, 그냥 실행하면 에..
[2024-2 겜엔기] Project AS 개발일지 #1
[2024-2 겜엔기] Project AS 개발일지 #1
Side Project
2024.09.29 00:02
2학년 2학기가 되면서 게임엔진기초 라는 수업을 듣게 되었다. 이 수업에서는 팀을 꾸려서 언리얼 엔진을 이용한 팀 프로젝트를 제작하는 것이 최종 과제이다.그래서, 2주차 수업 때 나를 포함해 5명으로 이루어진 팀을 배정받고 바로 기획 후에 개발에 들어갔다.지금은 개발이 조금이나마 된 상태이지만, 개발 전에도 할 이야기가 많아서 두번에 나눠서 쓰려고 한다.그리고, 이 프로젝트의 개발일지는 종강때가지 계속 써볼 것이다.그렇다면 시작~기획 완료우선, 팀원중에 언리얼에 친숙한 사람이 없어서 기획의 볼륨은 작게 가져가고자 했다. 조금만 크게 가져가도 구현에 어려움을 배로 겪을 것이 눈에 훤했다.그래서 구현할 것들이 얼마 없고, 제일 몰입감있게 플레이할 수 있는 FPS 전투 형식을 채용했다.상세 장르는 수업시간에 ..
[Side Project] Project KS 개발일지
[Side Project] Project KS 개발일지
Side Project
2024.09.09 22:09
전에 만들었던 Project RM을 만들래에서 주최한 10분콘에 냈었는데, 사실 또 하나 더 냈다..이 프로젝트가 10분콘을 노리고 만든 게임이고, 일주일만에 엄청난 성과를 이뤄낸 플젝이기도 했다.다른 프로젝트를 같이하고있는 선배와 동기들로 구성된 4명 팀이었고, 여기에서 나는 기획, 서브 개발, 아트, 사운드의 역할로써 참여했다. (또 다함) (그 선배는 바로 건호형)게임 기획또 같이 프로젝트를 하는 선배에게는 꿈이 하나 있었다... 바로 네크로맨서가 주인공인 게임을 만드는 것이다.그래서 초기 기획을 할 때 여러 컨셉들과 함께 네크로맨서가 주인공인 기획을 하나 만들어두었다.그리고 기획을 선배에게 주자마자 빛의 속도로 네크로맨서 기획이 선정되었다. ㅋㅋㅋㅋ 이제 그 기획을 간단히 설명하자면, 네크로맨싱 ..
완전 기초 블렌더
[#11] 완전 기초부터 시작하는 블렌더
[#11] 완전 기초부터 시작하는 블렌더
블렌더
2024.01.14 15:53
1. 렌더링 방법 블렌더가 렌더링을 하는 방법은 두가지가 있다. Cycles : 렌더링 속도가 느린 대신 결과물의 퀄리티가 뛰어나다. EEVEE : 렌더링 속도가 거의 실시간 급이지만 빛과 그림자 표현이 투박하고 퀄리티가 Cycles보다 떨어지는 감이 있다. 그래서, EEVEE를 사용하여 씬에서 렌더링 되는 것을 보고, Cycles를 사용해 최종 렌더링을 하는것이 효율적이다. 2. Lighting 특정 부분에 광원을 만드는 작업이다. 우측 탭에 지구 모양을 클릭하면, 블렌더에 전반적으로 적용되는 월드 조명을 선택할 수 있다. 기본값은 1로 설정되어있는데, 공기는 발광하지 않으니 0으로 설정해준다. 그리고, Light의 종류는 네가지가 있다. 우측 탭의 전구 모양을 클릭하면 전구의 종류와 색상, 밝기를 조..
[#10] 완전 기초부터 시작하는 블렌더
[#10] 완전 기초부터 시작하는 블렌더
블렌더
2024.01.14 15:09
1. Texture Paint Texture Paint는 질감 표현을 손으로 직접 그리게 해 주는 기능이다. Shader Editor를 불러온 후, Image Texture를 하나 생성해 Base Color와 연결해준다. 그 후에 New 버튼을 눌러 새로운 이미지를 생성한다. 그렇게 생성한 것을 불러온 후, 오브젝트를 선택하고 U키를 눌러 Unwrap을 해준다. 그렇게 되면 Image Editor 탭에 전개도가 생긴다. 그 위에 브러쉬로 색을 입히면, 전개도에 칠해진대로 오브젝트에 적용된다. 그리고 이런 이미지는 저장해주어야 제대로 저장되므로, Alt + S를 눌러 저장해준다.우측 창의 스패너모양을 누르면 브러쉬 설정이 가능하고, Texture Mask를 적용하면 만들어둔 텍스쳐를 불러와 그 질감대로 칠..
[#9] 완전 기초부터 시작하는 블렌더
[#9] 완전 기초부터 시작하는 블렌더
블렌더
2024.01.14 14:17
1. 오브젝트 만들기 1-1. 초콜릿 Cube 오브젝트를 하나 생성해서, 납작하게 만들어 초콜릿모양으로 만들었다. Array Modifier (배열) 특정 방향으로 오브젝트를 복사해주는 것이다. 이것을 이용해 초콜릿 패턴을 만들었다. 1-2. 빵 UV Sphere를 하나 생성한 후, 반을 날려 반 구로 만들었다. 그 후, Subdivision Surface를 적용해 부드럽게 해주었고, Loop cut을 조절해 펑퍼짐한 느낌을 주었다. Proportional Editing 뷰포트의 상단에, 동그라미가 여러개 있는 표시가 있는데, 그걸 누르면 Proportional Editing을 활성화할 수 있다. 그리고 점을 하나 잡고 움직여보면, 근처에 있는 것들도 같이 따라와 자연스럽게 늘리고 줄일 수 있다. 이것을..
[#8] 완전 기초부터 시작하는 블렌더
[#8] 완전 기초부터 시작하는 블렌더
블렌더
2024.01.14 13:17
1. PBR Texture (Physically Based Redering) 1-1. PBR Texture란? 2D 면의 형태를 띈 물체를 입체감이 있게 재질을 표현하는 것이다. 이것을 사용하기 위해서는 외부 사이트에서 PBR Texture를 다운받아야 한다. ambientCG 바로가기 텍스쳐를 다운받을 때에는 .png 파일로 다운받는 것이 제일 적절하다. 화질도 설정할 수 있는데, 8K 화질은 1기가 가까이 돼서 4K로 다운받았다. Color.png는 색상에 관한 정보를 담고 있고, Roughness.png 재질의 거친 정도를 표현할 때 사용된다. Normal~~.png는 요철, 즉, 재질의 높이에 대한 정보를 담고 있다. Displacement.png는 높이에대한 정보를 담고 있는데, 이것은 Mesh..
[#7] 완전 기초부터 시작하는 블렌더
[#7] 완전 기초부터 시작하는 블렌더
블렌더
2024.01.13 23:11
1. 오브젝트 Scale 조정 N키를 누르면 Viewport 오른쪽에 메뉴가 생긴다. 여기서 오브젝트를 선택하면 Item 탭이 생기는데, 여기서 Dimensions에 오브젝트의 크기가 미터단위로 나와있다. 따라서 이걸 보며 오브젝트의 크기를 조정해주어야 한다. 나의 경우는 컵의 크기가 3미터가 넘어가서, Z축이 0.1미터가 되도록 줄여주었다. 2. 바닥 생성 후 오브젝트 놓기 Plain을 생성 후, 컵과 접시를 이 위에 놓아주어야 한다. 뷰포트 상단에 있는 자석아이콘을 누르면, 오브젝트의 움직임이 1미터 단위로 보정되어서 움직여진다. 자석 옆에 있는 아이콘을 누르면, 몇가지 옵션이 뜨는데 초기값은 Increment이다. 이것을 Face로 바꾼 후 컵과 접시를 Plain 위에서 움직이면 Plain에 딱 붙..
[#6] 완전 기초부터 시작하는 블렌더
[#6] 완전 기초부터 시작하는 블렌더
블렌더
2024.01.13 21:52
숙제로 했던 접시 만들기는 거의 자유 주제라 풀이에 어긋나지 않아 생략하였다. 1. Modifier 뷰포트 오른쪽에 있는 창에서 아래 있는 것이 Properties 탭이고, 거기서 스패너 모양의 버튼을 누르면 Modifier를 제어할 수 있다. 우선, 컵에 Subdivison Surface라는 Modifier를 적용했다. Subdivision Surface에 두 속성이 있다. Levels Viewport : 이 Modifier를 적용하는 정도 Render : Viewport에서는 적용되지 않고, 렌더링할 경우에 적용되는 Modifier의 정도 보통 이 두 값을 같게 둔다. 하지만, 컵이 더 부드러워야한다...! 그렇다고 Levels Viewport값을 크게주면 안된다. 블렌더가 하얗게 질려버린다. Lev..
[#5] 완전 기초부터 시작하는 블렌더
[#5] 완전 기초부터 시작하는 블렌더
블렌더
2024.01.13 21:09
이번 강의부터는 본격적인 모델링 작업에 들어갈 것이다. 1. 레퍼런스 이미지 생성 만들 물체의 적절한 이미지를 찾은 후, Shift + A를 눌러 오브젝트 생성 탭으로 들어간다. 그 후, Image > Reference를 눌러 저장해둔 이미지를 불러온다. 그러면 이렇게 레퍼런스 이미지가 불러와진다. 2. 모델링 2-1. 둥글게 표현 모델링하려는 머그컵은 아래로 갈수록 둥글게 좁아지는 형태를 띄고 있다. 그래서 밑면을 줄여주었는데, 이대로는 그냥 직선으로 떨어지는 머그컵이 되어버린다. 그래서 Loop cut을 이용해 편집점을 추가해주어야 한다. Loop cut에 들어가서, 노란 선이 나올 때, 휠을 굴리거나 숫자를 입력하여 Loop cut의 개수를 지정할 수 있다. 이상태로 생성된 편집점을 조절해 머그컵과..
[#4] 완전 기초부터 시작하는 블렌더
[#4] 완전 기초부터 시작하는 블렌더
블렌더
2024.01.13 18:56
1. L-I-E L-I-E는 Object Mode의 G-R-S와 같이 Edit Mode의 주요 기능 세개를 묶은 것이다. 1-1. Loop cut Loop cut은 오브젝트를 고리모양으로 자르는 기능이다. Edit Mode에 진입한 후, Ctrl + R을 누르면 Loop cut에 진입하고, 그 상태에서 마우스를 오브젝트 모서리에 가져다 대면 노란색 선이 생긴다. 이상태로 좌클릭을 하게 되면 노란색 선이 주황색으로 바뀌고, 그 선이 마우스를 따라 움직여 Loop cut을 어디에 할지 정할 수 있다. 이 때 좌클릭을 누르면 주황색 선이 있는 곳에 Loop cut이 생기고, 우클릭을 누르면 정가운데에 생긴다. Loop cut을 실행한 후에는 점과 선만 생기고 아무일도 안일어나는데, 이것이 핵심 기능이다. Lo..
[#3] 완전 기초부터 시작하는 블렌더
[#3] 완전 기초부터 시작하는 블렌더
블렌더
2024.01.13 17:17
1. 숙제 풀이 저번 강의에서 받았던 숙제의 풀이를 보며 고칠 것, 몰랐던 것들을 적어보았다. 1-1. 오브젝트를 기준으로 회전 특정 오브젝트를 편집할 때 시점을 돌리면 그냥 돌려져서 오브젝트를 다시 찾아야하는 불편함이 있었는데, 키패드의 .키를 누르면 해당 오브젝트를 줌 인해서 볼 수 있고, 시점이 회전되는 기준점또한 오브젝트에 맞춰진다. 1-2. 특정 각도로 오브젝트 회전 오브젝트 (특히 저번 숙제에서의 고드름모양)를 회전할 때, R키를 누른 후 회전하면 정확한 각도를 맞출 수 없다. 이 때, R키를 누른 후 키보드로 회전시킬 각도를 입력하면 그 각도만큼 오브젝트가 회전된다. 숙제에서 45도로 회전된 상자를 그냥 눈대중으로 45도쯤 회전시켜 완성했었는데, 이걸 쓰면 쉬울 것 같다. 1-3. 오브젝트 ..
[#2] 완전 기초부터 시작하는 블렌더
[#2] 완전 기초부터 시작하는 블렌더
블렌더
2024.01.13 14:11
1. Object Mode Object Mode는 오브젝트 자체를 다루는 모드 (하나의 고체로 보는 모드)이고, 이와 반대되는 모드로 Edit Mode(다음 강의)가 있는데 이는 오브젝트의 요소 (점, 선, 면)을 다루는 모드이다. 1-1. 요소 선택 좌클릭으로 요소를 선택하고, A키를 눌러 Viewport에 있는 모든 오브젝트를 선택할 수 있다. A키를 두번 빠르게 누르면 전체선택을 해제할 수 있다. 1-2. G-R-S Grab : 오브젝트 이동 오브젝트를 선택하고 G키를 누르면 마우스 커서 모양이 바뀌면서 오브젝트가 마우스를 따라 움직인다. 좌클릭을 하여 변경사항을 저장할 수 있고, 우클릭을 눌러 취소할 수 있다. Rotate : 오브젝트 회전 오브젝트를 선택하고 R키를 누르면 마우스 커서 모양이 바..
[#1] 완전 기초부터 시작하는 블렌더
[#1] 완전 기초부터 시작하는 블렌더
블렌더
2024.01.13 12:10
3D 모델링의 필요성을 느껴서, 블렌더를 시작해보기로 했다. 1. 블렌더 설치 블렌더 공식 사이트로 가서 블렌더 최신버전을 다운로드 한다. 따로 설정해줄 것은 없고, 그냥 설치하면 된다. 언어 설정은 영어로 진행한다. 2. Viewport 블렌더를 처음 실행하면 나오는 그리드가 쳐진 회색 화면을 Viewport라고 한다. 마우스 휠 클릭을 한 후 움직이면 원하는 각도에서 물체를 볼 수 있다. Shift + 휠 클릭으로 시점 고정 후 평행이동을 할 수 있다. 물론 줌 인 / 아웃 기능은 휠을 굴리면 된다. 그리고 특정 시점 (위나 옆 같은)에서 보게 할 수도 있는데, 이게 키보드의 키패드로 이루어진다. 하지만 내가 쓰고 있는 키보드 두개 모두 키패드가 없다. 어어... 그럼 못하는거예요...? 할 수 있다..
전체 글
[후기] BOJ C++, 200일의 에필로그
알고리즘 공부2026.05.28 15:14[후기] BOJ C++, 200일의 에필로그

군 생활을 하며 지난 200일동안 백준을 하루에 한 문제 이상씩 풀어왔다.백준이 서비스를 종료한 지금 생각해보면 어떻게 했지 싶다가도, 재미있게 풀었던 기억이 많아서 다시 하라면 다시 할 수 있을 것 같은 마음이 든다. 200일을 달려왔지만 얻은건 백준의 서비스 종료 소식이라서 아쉬운 마음이 있지만, 이것만 얻은 것은 아니다.긴 시간이라면 긴 시간동안 많은 것을 얻었다. 본격적으로 후기를 작성해보기 전에, 대체 그 200일동안 뭘 했는지 한번 끄적여보려고 한다. ※ 스트릭 기준은 solved.ac로 정했다.보직 특성상 밤샘도 있고, 불규칙적인 생활을 해서 00시에 초기화되는 스트릭에는 도저히 맞출 수가 없었다.그래서 06시에 초기화되는 solved.ac 스트릭이 나의 근무 시간이나 군 내 생활 패턴이랑 ..

[BOJ C++] 1113번 - 수영장 만들기
알고리즘 공부2026.03.18 13:03[BOJ C++] 1113번 - 수영장 만들기

백준 1113번 - 수영장 만들기문제더보기지민이는 수영장을 만들려고 한다. 수영장을 만들 곳의 크기는 N*M이고, 각 칸은 직육면체이다. 따라서, 각 칸의 직육면체의 높이가 쓰여 있는 다음과 같은 땅을 생각할 수 있다. 166616111616661이 수영장은 15만큼의 물이 들어있는 수영장을 만들 수 있다. 가운데 3개의 칸에 5만큼 물을 채우면 되기 때문이다. 자 이제 가운데 물을 더 추가했다고 생각하면, 벽(높이가 6인 직육면체)을 넘어서 밖으로 나갈 것이다. 물은 항상 높이가 더 낮은 곳으로만 흐르고, 직육면체 위의 표면에는 물이 없다. 그리고, 땅의 높이는 0이고, 땅은 물을 무한대로 흡수 할 수 있다. 땅의 모양이 주어질 때, 수영장에 물이 얼마만큼 있을 수 있는지 구하는 프로그램을 작성하시오...

[BOJ C++] 1202번 - 보석 도둑
알고리즘 공부2026.03.18 12:19[BOJ C++] 1202번 - 보석 도둑

백준 1202번 - 보석 도둑문제더보기세계적인 도둑 상덕이는 보석점을 털기로 결심했다. 상덕이가 털 보석점에는 보석이 총 N개 있다. 각 보석은 무게 Mi와 가격 Vi를 가지고 있다. 상덕이는 가방을 K개 가지고 있고, 각 가방에 담을 수 있는 최대 무게는 Ci이다. 가방에는 최대 한 개의 보석만 넣을 수 있다. 상덕이가 훔칠 수 있는 보석의 최대 가격을 구하는 프로그램을 작성하시오.입력더보기첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci ≤ 100,000,000) 모든 숫자는 양의 정수이다.출력더보..

[BOJ C++] 2169번 - 로봇 조종하기
알고리즘 공부2026.03.17 06:54[BOJ C++] 2169번 - 로봇 조종하기

백준 2169번 - 로봇 조종하기문제더보기NASA에서는 화성 탐사를 위해 화성에 무선 조종 로봇을 보냈다. 실제 화성의 모습은 굉장히 복잡하지만, 로봇의 메모리가 얼마 안 되기 때문에 지형을 N×M 배열로 단순화 하여 생각하기로 한다. 지형의 고저차의 특성상, 로봇은 움직일 때 배열에서 왼쪽, 오른쪽, 아래쪽으로 이동할 수 있지만, 위쪽으로는 이동할 수 없다. 또한 한 번 탐사한 지역(배열에서 하나의 칸)은 탐사하지 않기로 한다. 각각의 지역은 탐사 가치가 있는데, 로봇을 배열의 왼쪽 위 (1, 1)에서 출발시켜 오른쪽 아래 (N, M)으로 보내려고 한다. 이때, 위의 조건을 만족하면서, 탐사한 지역들의 가치의 합이 최대가 되도록 하는 프로그램을 작성하시오.입력더보기첫째 줄에 N, M(1≤N, M≤1,0..

[BOJ C++] 1708번 - 볼록 껍질
알고리즘 공부2026.03.15 18:55[BOJ C++] 1708번 - 볼록 껍질

백준 1708번 - 볼록 껍질문제더보기다각형의 임의의 두 꼭짓점을 연결하는 선분이 항상 다각형 내부에 존재하는 다각형을 볼록 다각형이라고 한다. 아래 그림에서 (a)는 볼록 다각형이며, (b)는 볼록 다각형이 아니다.조금만 생각해 보면 다각형의 모든 내각이 180도 이하일 때 볼록 다각형이 된다는 것을 알 수 있다. 편의상 이 문제에서는 180도 미만인 경우만을 볼록 다각형으로 한정하도록 한다.2차원 평면에 N개의 점이 주어졌을 때, 이들 중 몇 개의 점을 골라 볼록 다각형을 만드는데, 나머지 모든 점을 내부에 포함하도록 할 수 있다. 이를 볼록 껍질 (CONVEX HULL) 이라 한다. 아래 그림은 N=10인 경우의 한 예이다.점의 집합이 주어졌을 때, 볼록 껍질을 이루는 점의 개수를 구하는 프로그램을..

반응형
image