본문 바로가기

분류 전체보기167

[C++ 기초] 문자열 스트림을 활용하여 구분 문자(delimiter)를 기준으로 문자열 스플릿 하기 문자열 스트림(string stream)문자열 데이터를 처리하다보면 종종 구분 문자(delimiter)를 기준으로 문자열을 스플릿 하는 것이 필요할 때가 있는데, 여러 가지 방법이 있지만 문자열 스트림을 활용하면 간단하게 구현할 수 있다. 입력 문자열 스트림(istringstream) 개체와 getline() 함수(입력 스트림 헤더 istream에 포함)를 활용하여 구분 문자를 기준으로 문자열을 스플릿 하는 예시 코드는 아래와 같다. #include // 입출력 스트림 헤더#include // 문자열 스트림 헤더#include int main(){ string str; cin >> str; istringstream ss(str); string buffer; // 스플릿한 문자열을 임시.. 2025. 7. 31.
[개발자 노트] 상호작용 컴포넌트 구현 및 기능 테스트 (4월 4주차) 상호작용 오브젝트 (Interactable Object) 상속 구조 변경 작업상호작용 가능 오브젝트를 개발 편의상 3 가지 분류로 구분하도록 상속 구조 변경, 불필요한 코드 간소화 작업토글 작동형 오브젝트 (AToggleableObjectBase 파생)소유 가능 오브젝트 (AOwnableObject 파생)키다운 작동형 오브젝트 (AKeyDownableObjectBase 파생)* 빨간색 표시 클래스 = 추후 구현 예정  상호작용 컴포넌트(UInteractionComponent)플레이어 클래스에 부착하여 상호작용 기능을 관리할 목적의 컴포넌트를 구현하고, 키 입력에 대한 액션 바인딩 (플레이어 컨트롤러) 및 입력에 따른 컴포넌트 작동을 위한 코드를 플레이어, 플레이어 컨트롤러 클래스에 코드를 추가하였음 UI.. 2024. 4. 30.
[개발자 노트] 상호작용 오브젝트 클래스 설계, 토글형 문 오브젝트 클래스 구현 (~4월 3주차) 상호작용 오브젝트 (Interactable Object) 클래스 설계 다음과 같은 사항을 고려하여 인터페이스 및 클래스를 설계. 플레이어와의 상호작용을 위한 기능을 인터페이스로 분리 플레이어가 소유한 상태로 오브젝트를 활용하는 기능을 인터페이스로 분리 공통된 부분은 기반 클래스의 멤버 및 메서드로 가질 수 있도록 하고자 하였음 유사한 오브젝트여도 작동 메커니즘 또는 상호작용 방식이 완전히 다르면, 다른 클래스로 파생되도록 하여 각 인스턴스를 인게임에 배치하여 활용하는 레벨 디자이너가 쉽게 구분할 수 있도록 하고자 하였음 레벨 디자이너와 협의 결과, 애셋에서 문 부분을 제거하고 신규 액터를 배치하기로 결정됨에 따라 DefaultSceneRoot의 하위 프로퍼티로서 메시 컴포넌트를 보유하도록 설계 * Tog.. 2024. 4. 23.
[Programmers] 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 주어지는 숫자들을 하나씩 순차적으로 더하거나 뺀 결과값을 구하는 재귀 함수를 만들어 문제를 해결한다. 구현 [스포 주의] 아래 '더보기'를 누르면 코드가 나오니 주의하세요~ 더보기 #include using namespace std; void Add(const vector& v, const int& t, int& cnt, int i, int sum) { if (i == v.s.. 2024. 1. 7.
[Programmers] 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 전화번호 목록에 있는 모든 번호들을 해시 테이블(hash table)에 저장한 다음, 각각의 전화번호들에 대해 앞에서부터 1, 2, $\cdots, $ 전체 글자 만큼의 접두사에 해당하는 전화번호가 해시 테이블에 존재하는지 확인한다. 구현 해시 테이블의 역할을 수행할 컨테이너로 std::unordered_map 형식의 컨테이너를 활용하였다. [스포 주의] 아래 '더보기'를 누.. 2024. 1. 7.
[Programmers] [1차] 뉴스 클러스터링 https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 주어지는 두 개의 문자열에 대해 각각, 두 글자씩 끊어 읽었을 때 모두 알파벳으로 이루어져 있으면 끊어 읽은 문자열의 등장 횟수를 기록한다. 이때 두 개의 알파벳으로 이루어진 문자열이 등장하는 횟수 중 최솟값은 교집합에 해당하며, 최댓값은 합집합에 해당하는 값임에 착안하여 자카드 유사도를 계산한다. 구현 풀이 1) 두 글자씩 끊어 읽은 문자를 STL의 컨테이너를 활용해 기록하.. 2024. 1. 6.