본문 바로가기
728x90
반응형

분류 전체보기301

OOP(4) 게임 캐릭터와 캐릭터의 행동을 모델링하는 객체 지향 프로그래밍(OOP) 예시입니다. // 게임 캐릭터 클래스 정의 class GameCharacter { constructor(name, health, damage) { this.name = name; this.health = health; this.damage = damage; } attack(target) { console.log(`${this.name}이(가) ${target.name}을(를) 공격합니다.`); target.takeDamage(this.damage); } takeDamage(amount) { this.health -= amount; if (this.health 2023. 11. 6.
168. Excel Sheet Column Title 엑셀 시트의 열 번호를 해당 열의 알파벳 표기로 변환하는 문제입니다. 문제 설명: 엑셀 시트의 열 번호는 1부터 시작하며, 각 열은 "A", "B", "C", ..., "Z", "AA", "AB", "AC", ... 순서로 표현됩니다. 여기서 "A"는 1번 열, "B"는 2번 열, "Z"는 26번 열, "AA"는 27번 열, "AB"는 28번 열을 나타냅니다. 주어진 숫자 n에 해당하는 열 번호를 알파벳 표기로 변환하여 반환하세요. 예를 들어, n이 1인 경우, 반환값은 "A"입니다. n이 28인 경우, 반환값은 "AB"입니다. 이 문제를 해결하기 위해서는 10진수를 26진수로 변환하는 것과 유사한 방법을 사용합니다. public string ConvertToTitle(int n) { StringBuil.. 2023. 11. 6.
145. Binary Tree Postorder Traversal 이진 트리를 후위 순회(postorder traversal)하는 방법을 구현하는 문제입니다. 문제 설명: 주어진 이진 트리를 후위 순회(postorder traversal)하는 방법은 다음과 같습니다: 왼쪽 서브트리를 후위 순회합니다. 오른쪽 서브트리를 후위 순회합니다. 루트 노드를 방문합니다. 후위 순회는 왼쪽 서브트리와 오른쪽 서브트리를 모두 순회한 후에 루트 노드를 방문하는 순서입니다. 예를 들어, 다음과 같은 이진 트리가 주어진 경우: 1 / \ 2 3 / \ 4 5 후위 순회(postorder traversal)는 다음과 같은 순서로 노드를 방문합니다: 4 -> 5 -> 2 -> 3 -> 1 후위 순회를 구현하기 위해 재귀 함수를 사용하거나 스택을 활용할 수 있습니다. public class S.. 2023. 11. 5.
141. Linked List Cycle 주어진 연결 리스트(링크드 리스트)에 순환(사이클)이 존재하는지 여부를 판단하는 문제입니다. 문제 설명: 주어진 연결 리스트에 순환(사이클)이 존재하면 true를, 순환이 존재하지 않으면 false를 반환하세요. 연결 리스트는 각 노드가 데이터와 다음 노드를 가리키는 링크로 구성됩니다. 순환(사이클)이 존재한다는 것은 연결 리스트에서 어떤 노드를 시작점으로 하더라도 해당 노드를 지나면 언젠가 다시 동일한 노드에 도달할 수 있다는 것을 의미합니다. 예를 들어, 다음과 같은 연결 리스트가 순환을 가지고 있으면 true를 반환해야 합니다: 3 -> 2 -> 0 -> 4 ^ | | v +---------+ 반면에, 순환을 가지지 않는 연결 리스트는 다음과 같습니다: 1 -> 2 -> 3 -> 4 순환을 판단하기.. 2023. 11. 5.
OOP(3) 은행 계좌와 트랜잭션을 모델링하는 객체 지향 프로그래밍(OOP)의 예시입니다. 은행 계좌와 트랜잭션을 모델링하는 객체 지향 프로그래밍(OOP)의 예시입니다. // 은행 계좌 클래스 정의 class BankAccount { constructor(accountNumber, accountHolder, balance) { this.accountNumber = accountNumber; this.accountHolder = accountHolder; this.balance = balance; this.transactions = []; } deposit(amount) { if (amount > 0) { this.balance += amount; this.transactions.push(`입금: +${amount}`.. 2023. 11. 5.
OOP(2) 이번에는 동물과 동물의 서브클래스로 강아지와 고양이를 모델링하는 예제입니다. // 동물 클래스 정의 class Animal { constructor(name, species) { this.name = name; this.species = species; } speak() { console.log(`${this.name}는 소리를 내지 않습니다.`); } } // 강아지 클래스 (동물의 서브클래스) class Dog extends Animal { speak() { console.log(`${this.name}는 멍멍 짖습니다.`); } } // 고양이 클래스 (동물의 서브클래스) class Cat extends Animal { speak() { console.log(`${this.name}는 야옹 소리를 .. 2023. 11. 5.
OOP JavaScript는 객체 지향 프로그래밍(OOP) 언어입니다. 객체 지향 프로그래밍은 데이터와 해당 데이터를 조작하는 메서드(함수)를 논리적으로 그룹화하는 프로그래밍 패러다임입니다. JavaScript는 객체, 프로토타입, 상속 및 다른 객체 지향 프로그래밍 개념을 지원합니다. JavaScript에서 객체는 키-값 쌍의 집합인 속성(properties)과 해당 속성을 조작하는 메서드를 포함할 수 있습니다. 또한 JavaScript의 프로토타입 기반 상속은 객체 간 코드 재사용을 지원하며 객체 지향 프로그래밍의 핵심 원칙 중 하나인 상속 개념을 구현합니다. 예를 들어, JavaScript에서 클래스를 정의하고 해당 클래스로 객체를 생성할 수 있습니다. 또한 클래스의 메서드를 사용하여 객체를 조작할 수 있.. 2023. 11. 5.
728x90
반응형