본문 바로가기

분류 전체보기120

[프로그래머스] 42890 파이썬 - 후보키 풀이문제에서 relation이라는 2차원 문자열 배열 안에 학생들의 인적사항이 주어진다.인적사항의 column(열) 속성들에 대해, 유일성과 최소성을 만족하는 "후보키"를 구하는 문제이다.  다음과 같이 컬럼의 길이는 최대 8로 주어진다.따라서 파이썬의 combinations를 사용하여 모든 컬럼의 조합을 구했다. (조합의 시간복잡도는 2 ^ 컬럼의 길이 = 256) 1. 모든 컬럼의 조합을 구한다.2. 각 조합에 대해 유일성을 검사한다    2-1. 집합(set()) 에 각 조합의 인덱스의 값들을 문자열로 변환한 값을 넣는다.    2-2. 만약 해당 집합의 길이가 row의 길이와 같으면 겹치는 값이 없는 것이므로 유일하다.3. 유일한 조합들을 모아놓은 candidate 리스트에 대해 최소성을 검사한다.. 2024. 9. 9.
[프로그래머스] 12978 파이썬 - 배달 풀이문제를 읽어보면 1번 마을에서 다른 마을까지 거리 중 최단 거리를 구하는 문제임을 알 수 있었다. 이때, 제한사항을 읽어보니 노드(마을의 개수)가 최대 50개임을 알 수 있었다.따라서 다익스트라 알고리즘을 사용하여 풀 수 있는 문제였다. 다익스트라 알고리즘 CT-Study/PART 2/Chapter 9, 최단 경로.md at master · JeongEunJi1127/CT-Study🔎 코딩테스트 공부 결과물 정리를 위한 저장소 . Contribute to JeongEunJi1127/CT-Study development by creating an account on GitHub.github.com- 특정 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구하는 알고리즘- 가장 비용이 적은 노드를.. 2024. 9. 9.
[C++] c++ 공부.. 해야겠지? (1) 최근 NHN 코딩테스트에서 주력 언어인 Python을 사용할 수 없었다.앞으로도 이런 일이 반복될 수 있기도 하고, 언리얼 엔진이 c++을 사용하기 때문에 지금부터라도 차근차근 c++을 공부해보기로 했다.  1. c++이란?c++은 고급 언어로 0,1만 이해하는 기계어와 달리 인간이 비교적 이해하기 쉽게 만들어진 언어이다.더보기더보기자연어 - 인간이 이해하기 쉬운 High-Level 언어기계어 - Low-Level 언어  2. 주석1. 한 줄 주석// 주석주석주석주석/* 주석주석주석주석 */2. 두 줄 이상 주석// 주석// 주석/* 주석주석 */  3. 출력cout  cout와 endl은 iostream 안에 정의되어 있다. iostream이란?- input / output stream이라는 뜻의 헤더.. 2024. 9. 5.
[프로그래머스] 67256 파이썬 - 키패드 누르기 풀이키패드의 숫자와 각 숫자에 맞는 좌표를 미리 딕셔너리에 선언해두고 풀었다.나머지는 단순 구현이었다.if문을 사용해 조건만 잘 걸어주면 어렵지 않게 풀 수 있는 문제였다. 코드def solution(numbers, hand): answer = '' keypad = {'1':(0,0), '2':(0,1), '3':(0,2), '4':(1,0), '5':(1,1), '6':(1,2), '7':(2,0), '8':(2,1), '9':(2,2), '*':(3,0), '0':(3,1), '#':(3,2)} left = keypad['*'] right = keypad['#'] for number in numbers: .. 2024. 9. 5.
[백준] 15686번 파이썬 - 치킨 배달 문제https://www.acmicpc.net/problem/15686코드from itertools import combinationsimport sysinput = sys.stdin.readlinen,m = map(int,input().split())city = []chicken = []house = []def CalculateDistance(chicken): value= 0 for i in house: nx,ny = i distance = int(1e9) for j in chicken: x,y = j distance = min(distance,abs(nx-x) + abs(ny-y)) value += d.. 2024. 8. 30.
[백준] 18405번 파이썬 - 경쟁적 전염 문제 코드from collections import dequeimport sysinput = sys.stdin.readlinen,k = map(int,input().split())array = []virus = []# 배열 초기화for i in range(n): array.append(list(map(int,input().split()))) for j in range(n): if array[i][j] != 0: virus.append((array[i][j],0,i,j))virus.sort()queue = deque(virus)# s초 후에 (x,y) 위치에 바이러스 s,x,y = map(int,input().split())# 상하좌우dx = [0,0,-1,1]d.. 2024. 8. 27.
[프로그래머스] 1844 C# - 게임 맵 최단거리 문제 c#으로 처음 알고리즘을 풀다 보니, 기본 문법 관련하여 모르는 것이 많아 어려움을 겪었다.문제 자체는 기본적인 BFS문제로 난이도가 높게 느껴지진 않았다. 코드using System;using System.Collections.Generic;public class Solution{ public int solution(int[,] maps) { int answer = 0; bool[,] visited = new bool[maps.GetLength(0), maps.GetLength(1)]; BFS(maps, visited, (0, 0)); if (maps[maps.GetLength(0) - 1, maps.GetLength(1) - 1] ==.. 2024. 8. 16.
[Study] MVC 패턴 MVC패턴은 디자인패턴 중 하나이다. MVC 는 Model, View, Controller의 약자이다.하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴이다. 모델1. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다. 2. 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다. 3. 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.  뷰 1. 모델이 가지고 있는 정보를 따로 저장해서는 안된다. 2. 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 된다. 3. 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.  컨트롤러 1. 모델이나 뷰에 대해서 알고 있어야 한다. 2. 모델이나 뷰의 변경을 모니터링 해야 한다.  ​서로 분리되.. 2024. 8. 1.
[Unity] 디펜스게임 개발 - 분열 스킬 Split Skill 스크립트using DG.Tweening;using System.Collections;using System.Collections.Generic;using TMPro;using UnityEngine;public class SplitSkill : OneTimeSkill{ [Header("# Split Skill")] [SerializeField] private int splitEnemyCount; [SerializeField] private float moveDelay; [Header("# Split Skill Effect")] [SerializeField] private GameObject splitEffect; [SerializeField] priva.. 2024. 7. 31.