문제 설명서강대학교의 축제 기간에 상근이는 매년 AS관 복도에 화려한 장식을 꾸민다. 장식은 전구 N개로 이루어져 있고, 전구는 왼쪽에서 오른쪽으로 일렬로 배열되어 있다. 각 전구는 불이 켜있을 수 있고, 꺼져있을 수도 있다.상근이는 이 전구를 조작하기 위해서, 집에서 전구를 조작하는 기계를 가지고 왔다. 이 기계는 어떤 구간의 전구를 지정하면, 불이 켜있는 전구의 불을 끄고, 꺼져있는 전구의 불을 켜는 기능이 있다. 하지만, 이 기계는 상당히 오래된 기계로, 한 번 사용하면 다음 해까지 더 이상 사용할 수 없다.서강대학교 학생들은 불이 켜있는 전구와 꺼져있는 전구가 번갈아가면서 나타나는 패턴을 좋아한다. 이러한 패턴을 교대 패턴이라고 한다. 따라서, 상근이는 이 기계를 1번만 사용해서 가장 긴 교대 패..
전체 글
2D 애니메이션2D 게임에서 입력에 따라 캐릭터의 애니메이션을 적용하는 방법은 다음과 같다. 우선, 애니메이션을 적용할 2D 이미지를 준비한다.이후, Sprite Editor를 통해 다음과 같이 Slice 해주면 된다.자동으로 크기를 설정해도 되고 원하는 크기로 자를 수도 있다.Slice가 적용되면 다음과 같다.Slice가 완료되면 다음과 같이 분할된 스프라이트가 생성된다.캐릭터로 사용할 GameObject를 생성하고 Sprite Render와 Animator를 붙여준다.원하는 애니메이션을 Animation View에 넣고 SampleRate를 설정하면 애니메이션을 만들 수 있다.만들어진 애니메이션을 Animator에서 설정하면 다음과 같이 동작한다.트랜지션 조절하면 애니메이션 간의 전이를 할 수 있다...
메테리얼 색상 변경GameObject의 적용된 Material의 색상을 변경해 보자.Material은 Render Component에 적용되어 있다.이를 받아와 color의 값을 변경하면 색상을 변경할 수 있다.using System.Collections;using System.Collections.Generic;using UnityEngine;public class MatColorChanger : MonoBehaviour{ private BoxCollider boxCollider; [SerializeField] private GameObject cube; private Vector3 minBounds; private Vector3 maxBounds; void Start() ..
문제 설명백준이는 방 청소를 하면서 필요 없는 전공 서적을 사람들에게 나눠주려고 한다. 나눠줄 책을 모아보니 총 N권이었다. 책이 너무 많기 때문에 백준이는 책을 구분하기 위해 각각 1부터 N까지의 정수 번호를 중복되지 않게 매겨 두었다.조사를 해 보니 책을 원하는 서강대학교 학부생이 총 M명이었다. 백준이는 이 M명에게 신청서에 두 정수 a, b (1 ≤ a ≤ b ≤ N)를 적어 내라고 했다. 그러면 백준이는 책 번호가 a 이상 b 이하인 책 중 남아있는 책 한 권을 골라 그 학생에게 준다. 만약 a번부터 b번까지의 모든 책을 이미 다른 학생에게 주고 없다면 그 학생에게는 책을 주지 않는다.백준이가 책을 줄 수 있는 최대 학생 수를 구하시오.https://www.acmicpc.net/problem/9..
알고리즘알고리즘은 프로그래밍에서 문제를 해결하기 위한 단계적인 절차나 방법을 의미한다. 알고리즘의 주요 특징입력: 알고리즘은 하나 이상의 입력을 받는다.출력: 알고리즘은 하나 이상의 결과를 생성한다.명확성: 각 단계는 모호하지 않고 명확해야 한다.유한성: 알고리즘은 유한한 수의 단계 후에 반드시 종료되어야 한다.효율성: 알고리즘은 가능한 한 효율적으로 설계되어야 한다. 알고리즘의 중요성프로그래밍에서 알고리즘은 매우 중요한 역할을 한다.효율적인 알고리즘은 프로그램의 성능을 크게 향상시키고, 복잡한 문제를 해결하는 데 필수적이다. 알고리즘의 종류정렬 알고리즘: 버블 정렬, 퀵 정렬, 병합 정렬 등검색 알고리즘: 선형 검색, 이진 검색 등그래프 알고리즘: 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS),..
문제 설명N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다.만약에 이동하는 도중에 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 K개 까지 부수고 이동하여도 된다.한 칸에서 이동할 수 있는 칸은 상하좌우로 인접한 칸이다.맵이 주어졌을 때, 최단 경로를 구해 내는 프로그램을 작성하시오.https://www.acmicpc.net/problem/14442 제한 사항 풀이문제를 요약하면, (1,..
문제 설명평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA”는 DNA 문자열이 아니지만 “ACCA”는 DNA 문자열이다. 이런 신비한 문자열에 완전히 매료된 민호는 임의의 DNA 문자열을 만들고 만들어진 DNA 문자열의 부분문자열을 비밀번호로 사용하기로 마음먹었다.하지만 민호는 이러한 방법에는 큰 문제가 있다는 것을 발견했다. 임의의 DNA 문자열의 부분문자열을 뽑았을 때 “AAAA”와 같이 보안에 취약한 비밀번호가 만들어 질 수 있기 때문이다. 그래서 민호는 부분문자열에서 등장하는 문자의 개수가 특정 개수 이상이여야 비밀번호로 사용할 수 있다는 규..