C#

1. 문제설명\ 자연수 x를 y로 변환하려고 합니다. 사용할 수 있는 연산은 다음과 같습니다. ● x에 n을 더합니다 ● x에 2를 곱합니다. ● x에 3을 곱합니다. 자연수 x, y, n이 매개변수로 주어질 때, x를 y로 변환하기 위해 필요한 최소 연산 횟수를 return하도록 solution 함수를 완성해주세요. 이때 x를 y로 만들 수 없다면 -1을 return 해주세요. 2. 제한사항 ● 1 ≤ x ≤ y ≤ 1,000,000 ● 1 ≤ n number == -1); list.Sort(); if (list.Count == 0) return -1; return answer = list[0]; } public int PlusN(int x, int y, int n) { int cnt = 0; whil..
1. 문제설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 2. 제한사항 ● prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. ● prices의 길이는 2 이상 100,000 이하입니다. 3. 입출력예시 prices return [1, 2, 3, 2, 3] [4,3,1,1,0] 4. 입출력 예 설명 ● 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. ● 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. ● 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. ● 4초 시점의 ₩2은 1초간 가격이 떨어지..
Dictionary란? Dictionary는 키(key)와 값(value)을 쌍으로 저장하는 클래스입니다. 이는 해시 테이블을 기반으로 하여 빠른 데이터 검색 및 조회를 할 수 있습니다. Dictionary는 System.Collections.Generic 에 속해 있습니다. 키의 유일성: 각 키는 유일해야 하며, 중복된 키를 허용하지 않습니다. 값의 중복 허용: 값은 중복될 수 있습니다. 즉, 여러 개의 다른 키가 동일한 값을 가질 수 있습니다. Dictionary를 사용해보자! 1. Dictionary 선언 및 초기화 //키는 문자열, 밸류는 정수형을 가진 딕셔너리 Dictionary dic = new Dictionary(); 2. Add(key, value) - 데이터 추가 Dictionary di..
스택(Stack)이란? 스택(Stack)은 클래스이며, 데이터를 선입후출(FILO - First In Last Out) 또는 후입선출(LIFO - Last In First Out)의 순서로 저장하는 추상 자료형(ADT)입니다. 이는 스택에 데이터를 추가할 때 항상 맨 위에 추가되고, 데이터를 제거할 때는 맨 위에서 제거되는 구조를 의미합니다. 예를들어 컨테이너를 수직으로 한 줄로 쌓는 작업이라고 생각하시면 편할 것 같습니다. Stack은 System.Collections 네임스페이스에 정의되어 있습니다. 스택은 주로 함수 호출의 실행 컨텍스트를 관리하거나, 문제를 해결하는 과정에서 임시 데이터를 저장하거나 역순으로 데이터를 처리할 때 유용하게 사용됩니다. 스택(Stack)을 사용해보자! 1. Stack ..
큐(Queue)란? 큐는 클래스이며, 선입선출(FIFO - First In First Out)방식으로 데이터를 저장하는 자료 구조입니다. 큐는 데이터를 추가할 떄는 항상 뒤쪽에 추가되고, 데이터를 제거할 때는 항상 앞쪽에서 제거됩니다. 큐를 사용하기 위해선 using.System.Collections; 를 추가해줘야 합니다. List와 같이 크기가 자동으로 늘어나며, 데이터 타입이 서로 다른 값을 추가할 수 있습니다. Queue클래스를 사용해보자! 1. Queue 생성 Queue queue = new Queue(); //특정한 데이터 타입을 가지지 않은 큐. Queue intQ = new Queue(); //int형 데이터 타입을 가진 큐. Queue stringQ = new Queue(); //stri..
1. 문제설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다.한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. 1번 사람이 자신의 첫 번째 차례에 tank를 말합니다.2번 사람이 자신의 첫 번째 차례에 ..
배열(Array)이란? 배열(Array)은 동일한 데이터 형식(int면 int값, string이면 string값)이 순서대로 저장된 구조입니다. 배열은 고정된 크기를 가지며, 각 원소는 인덱스를 사용하여 접근할 수 있습니다. 흔히 쓰는 표현을 쓰자면, 고정된 크기란 방(Room)의 개수를 말합니다. 감옥의 독방같은 존재인겁니다. 배열이란 이름의 감옥이 있는데, 이곳은 같은 종류의 범죄를 저지른 사람만 들어올 수 있는 곳이고, 독방만 존재합니다. 출처: https://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/Array1.svg/1920px-Array1.svg.png 위 그림은 방이 10개짜리인 배열을 나타냅니다. 그러므로 최대 10개의 동일한 데이터 값이 들..
1. 문제설명 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 따라서, 모든 트럭이 다리를 지나려면 최소 8초가 걸립니다. solution 함수의 매개변수로 다리에 올라갈 수 있는 트럭 수 bridge_length, 다리가 견딜 수..
1. 문제설명 마법의 세계에 사는 민수는 아주 높은 탑에 살고 있습니다. 탑이 너무 높아서 걸어 다니기 힘든 민수는 마법의 엘리베이터를 만들었습니다. 마법의 엘리베이터의 버튼은 특별합니다. 마법의 엘리베이터에는 -1, +1, -10, +10, -100, +100 등과 같이 절댓값이 10c (c ≥ 0 인 정수) 형태인 정수들이 적힌 버튼이 있습니다. 마법의 엘리베이터의 버튼을 누르면 현재 층 수에 버튼에 적혀 있는 값을 더한 층으로 이동하게 됩니다. 단, 엘리베이터가 위치해 있는 층과 버튼의 값을 더한 결과가 0보다 작으면 엘리베이터는 움직이지 않습니다. 민수의 세계에서는 0층이 가장 아래층이며 엘리베이터는 현재 민수가 있는 층에 있습니다. 마법의 엘리베이터를 움직이기 위해서 버튼 한 번당 마법의 돌 한..
1. 문제설명 코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. 컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다. 파일들은 바탕화면의 격자칸에 위치하고 바탕화면의 격자점들은 바탕화면의 가장 왼쪽 위를 (0, 0)으로 시작해 (세로 좌표, 가로 좌표)로 표현합니다. 빈칸은 ".", 파일이 있는 칸은 "#"의 ..
ForMan_
'C#' 카테고리의 글 목록 (7 Page)