카테고리(355)
-
20240204_마법의 엘리베이터(프로그래머스)
오늘의 TIL은 프로그래머스의 문제인 마법의 엘리베이터에 관한 내용이다. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/148653 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대해서 설명하면 한 번 누르면 10의 n제곱(n은 0 이상인 정수)만큼 위 아래로 움직이는 엘리베이터 버튼이 있을 때, 현재 층수에서 0층(현재 층수에서 더해서 0이 되는 값)으고 가려고 하는데 가장 적게 버튼을 눌러서 가는 방법을 찾는 함수를 만드는 것이 문제이다. 우선 통과한 답은 아래와 같다. 더보기..
2024.02.05 -
20240203_최종프로젝트 트러블슈팅
오늘의 TIL은 최종프로젝트의 중간 발표에서 사용할 트러블 슈팅에 대한 내용이다. 중간 발표에서 사용할 자료를 정리하면서 이번 프로젝트를 겪으며 생겼던 문제와 이를 해결한 진행사항들에 대한 기록이다. 내가 프로젝트에서 맡은 부분은 게임의 맵과 관련된 부분으로 2D 플랫포머 메트로베니아류의 게임으로 맵과 관련하여 구현할 부분이 많았다. 이 과정에서 마주했던 문제들을 몇가지 기록한다. 1. 맵에서의 전장의 안개 구현 여기서 전장의 안개로 표현한 내용은 플레이어가 아직 플레이어가 탐험하지 않은 지역으로, 메트로베니아류의 게임의 특성상 미지의 영역을 탐험하며 새로운 기술, 아이템 등을 획득해야 하므로 게임을 시작하자마자 모든 지역이 밝혀져있다면 게임성이 떨어지기 때문에 필요하다고 생각하였다. 시도한 방법 1번 ..
2024.02.03 -
20240202_객체지향의 특징
오늘의 TIL은 어제에 이어진 내용으로 객체지향에 대한 내용이다. 객체지향이란 객체지향이란 아래에서 서술할 객체지향 프로그래밍보다는 좀 더 광범위한 개념으로, 데이터와 기능을 객체라는 단위로 조직화하는 것을 포함한 디자인 및 개발의 철학이다. 다시말해서 객체지향과 객체지향 프로그래밍은 엄밀히 말하면 조금의 차이가 있지만, 게임 개발의 영역에서는 두 단어가 거의 같은 의미로 사용된다고 할 수 있다. 객체지향 프로그래밍(Object-Oriented Programming, OOP) 객체지향 프로그래밍은 프로그래밍을 하는 과정에서 '객체'를 중심으로 프로그램을 설계 및 개발하는 것을 말한다. 다시 말해서 여러 독립적인 부품들을 조합해서 하나의 프로그래밍을 완성하는 방법을 말한다. 예를 들어서 자동차를 만든다고 ..
2024.02.03 -
20240201_클래스와 객체
오늘의 TIL은 C#에서 다루는 기본적인 CS 지식에서 중요하다고 생각되는 클래스와 객체에 대한 내용이다. 클래스와 객체는 객체 지향 프로그래밍(Object-Oriented Programming, OOP)의 핵심 개념 중 하나이다. 클래스(Class) 클래스란 객체를 생성하기 위한 템플릿으로 객체의 상태를 정의하는 필드와 객체의 행동을 정의하는 메서드를 포함한다. 예를 들어 자동차를 생각해보면, 자동차의 클래스는 자동차의 특성(제조사, 모델, 색상 등)을 필드로 정의하고, 자동차가 수행할 수 있는 동작(운전하기, 정지하기 등)을 메서드로 정의할 수 있다. 이를 코드로 작성하면 아래와 같다. public class Car { public string maker; public string model; pub..
2024.02.01 -
20240131_그림 확대(프로그래머스)
오늘의 TIL은 프로그래머스의 그림 확대라는 문제에 대한 내용이다. 문제의 링크는 아래와 같다. https://school.programmers.co.kr/learn/courses/30/lessons/181836 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대해 설명하면 직사각형 형태의 그림 파일을 나타낸 문자열 배열(string[] picture)과 정수 k가 주어질 때, 이 그림 파일을 가로, 세로로 k배 늘린 그림 파일을 나타내도록 문자열 배열을 return 하시오. 제한사항 1
2024.02.01 -
20240130_병합 정렬, 힙 정렬
오늘의 TIL은 어제에 이어서 정렬 알고리즘에 대한 내용이다. 어제 알아봤던 버블 정렬, 선택 정렬, 삽입 정렬은 N^2(삽입 정렬은 최적의 경우 N)의 시간 복잡도를 가지는 데이터의 양이 많아지면 사용하기 어려워지는 정렬 알고리즘이었다. 오늘은 nlogn을 가지는 보다 효율적인 정렬 알고리즘인 병합 정렬과 힙 정렬을 알아보려고 한다. 1. 병합 정렬(merge Sort) 병합 정렬은 분할 정복(Divide and Conquer) 방식을 이용한 정렬 방법으로, 하나의 리스트를 두 개의 리스트로 분할한 다음, 각각의 분할된 리스트를 정렬한 후 합쳐서 정렬된 하나의 리스트로 만드는 방법이다. 병합 정렬이 가지는 또 하나의 특징은, 두 개의 리스트를 분할하여 정렬하는 과정을 원래 있는 리스트가 아닌 새로운 리..
2024.01.30