[프로그래머스/C++ 문제 풀이] Lv. 2 - 영어 끝말잇기
·
코딩테스트/프로그래머스 (Lv. 2)
문제 설명1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다.1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다.마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다.앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다.이전에 등장했던 단어는 사용할 수 없습니다.한 글자인 단어는 인정되지 않습니다.다음은 3명이 끝말잇기를 하는 상황을 나타냅니다.tank → kick → know → wheel → land → dream → mother → robot → tank위 끝말잇기는 다음과 같이 진행됩니다.1번 사람이 자신의 첫 번째 차례에 tank를 말합니다.2번 사람이 자신의 첫 번째 차례에 kick을 말합니다...
[프로그래머스/C++ 문제 풀이] Lv. 2 - N개의 최소 공배수
·
코딩테스트/프로그래머스 (Lv. 2)
문제 설명두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.제한 사항arr은 길이 1이상, 15이하인 배열입니다.arr의 원소는 100 이하인 자연수입니다.입출력 예문제 풀이이번 문제는 N개의 수의 최소 공배수를 구하는 문제입니다. 저의 경우 N개의 수를 모두 소인수분해 하여 모든 값들 중 지수의 값이 가장 큰 값들만을 곱하는 방식으로 문제를 해결하게 ..
[Algorithm] 10진수를 2진수로 변환하기
·
코딩테스트/알고리즘
개요코딩테스트 문제를 풀다보면 10진수를 2진수로 변환하여 연산하는 로직을 구현해야 하는 부분이 종종 발생합니다.어렵지는 않지만, 간단한 것부터 수학적인 알고리즘을 정리해보기 위해 10진수를 2진수로 변환하는 방법에 대해 정리해보았습니다.2진법이란?우리는 일상적으로 0 ~ 9까지의 10개의 숫자를 사용하여 수를 나타내는 10진법을 사용합니다.하지만 컴퓨터는 내부적으로  0과 1이라는 두 개의 숫자만을 사용하여 수를 나타내는 2진법을 사용해서 계산합니다. 10진법에서는 10이 만들어지는 순간 자리수를 올리며, 2진수도 동일하게 2가 만들어지는 순간 자리수를 올린다고 생각할 수 있습니다. 예를 들어 "3"을 2진법으로 표현한다면 "11"이 되며, "4"는 "101"이 되는 것을 알 수 있습니다. 즉, 자리 ..
[프로그래머스/C++ 문제 풀이] Lv. 2 - 멀리 뛰기
·
코딩테스트/프로그래머스 (Lv. 2)
문제 설명효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는(1칸, 1칸, 1칸, 1칸)(1칸, 2칸, 1칸)(1칸, 1칸, 2칸)(2칸, 1칸, 1칸)(2칸, 2칸)의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다.  멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다.제한 사항n은 1 이상, 2000 이하인 정수입니다.입출력 예 입출력 예 #1위에서 설명한 내용과 같습니다. 입출력 예 #2(2칸, 1칸)(1칸, 2칸)(1칸, 1칸, 1칸)총..
[프로그래머스/C++ 문제 풀이] Lv. 2 - 구명보트
·
코딩테스트/프로그래머스 (Lv. 2)
문제 설명무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다.예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다.구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다.사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하도록 solution 함수를 작성해주세요.제한 ..
[프로그래머스/C++ 문제 풀이] Lv. 2 - 점프와 순간 이동
·
코딩테스트/프로그래머스 (Lv. 2)
문제 설명OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용량을 줄이기 위해 점프로 이동하는 것은 최소로 하려고 합니다. 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용해야 하는 건전지 사용량의 최솟값을 return하..
[Unreal Engine 5] FABRIK IK
·
Game Programming/Unreal Engine
개요언리얼 엔진 TPS 관련 강의를 들으며 AimOffset을 추가했더니 위, 아래 방향을 바라볼 때 다음과 같이 무기를 부착하지 않은 손의 위치가 이상해지는 것을 확인할 수 있었습니다.사진을 자세히 보면 왼손의 위치가 총에 붙어있지 않고 허공에 떠있는 모습을 볼 수 있는데, 이를 맞춰주는 방법을 간단히 정리해보도록 하겠습니다. FABRIK IK FABRIK IK(Forward And Backward Reaching Inverse Kinematics)은 언리얼 엔진에서 사용되는 IK 솔버 중 하나로, 캐릭터의 뼈대를 자연스럽게 움직이기 위해 사용됩니다. 언리얼 엔진에서는 Control Rig나 Animation Blueprint에서 설정할 수 있으며, 주로 팔이나 다리 등이 목표 지점에 자연스럽게 도달..
[프로그래머스/C++ 문제 풀이] Lv. 2 - 카펫
·
코딩테스트/프로그래머스 (Lv. 2)
문제 설명Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다.Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.제한 사항갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다.노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다.카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다.입출..