코딩 테스트 29

C# 최소직사각형

문제에서 제시한 것처럼 2차원 배열을 입력받아서 메서드에 넣고 싶었는데 어떻게 해야할지 모르겠어서 메인함수에 테스트 케이스를 정해둔 형태를 바탕으로 작성했다 모든 가로 길이가 각각의 세로 길이보다 길게 만들어주고 가로 길이 중 가장 큰 값과 세로 길이 중 가장 큰 값을 곱해서 반환하게 했다 반환값을 따로 출력하진 않는다 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; namespace Rectangle { class Program { static void Main() { int[,] arr = { { 60, 50 }, { 30, 70 }, { 60, 30 }, { 80,..

C# 록 페스티벌

문제 커다란 공연장을 빌려서 록 페스티벌을 개최하려고 합니다. 이 페스티벌은 여러 날 동안 진행되며, 하루에 한 팀의 밴드가 공연장에서 콘서트를 하게 됩니다. 전체 밴드를 몇 팀 섭외할 지는 아직 결정하지 않았지만, 페스티벌의 간판 스타인 L개의 팀은 이미 섭외가 끝난 상태입니다. 따라서 페스티벌은 최소 L일 이상 진행하게 됩니다. 이번에 사용할 공연장은 하루 빌리는 데 드는 비용이 매일 매일 다릅니다. 때문에 공연 일정을 잘 정해서 공연장 대여 비용을 줄이려고 합니다. 앞으로 N일간의 공연장 대여 비용을 알고 있다고 합시다. 이 중 L일 이상을 연속해서 대여하되, 공연장을 하루 빌리는 데 드는 평균 비용을 최소화하려면 어떻게 공연장을 빌려야 할까요? 예를 들어 앞으로 6일간 공연장을 빌리는 데 드는 비..

C# 1439 뒤집기

연속된 하나 이상의 숫자를 뒤집어서 모든 값을 통일한다 문자열 S={0001100}에서 S[0]==S[1] S[1]==S[2] S[2]!=S[3] S[3]==S[4] S[4]!=S[5] S[5]==S[6] S[0]부터S[2]의 값, S[5]부터 S[6]의 값이 0으로 같고, S[3]부터 S[4]의 값이 1로 같다 따라서 S[3]부터 S[4]의 값을 1번 뒤집는 것이 최소로 뒤집는 횟수이다 문제에서 나온 다른 예시들도 위의 과정처럼 하나씩 생각하다가 최소로 뒤집는 횟수의 규칙을 발견했는데 값이 다른 횟수/2를 올림한 것이 최소로 뒤집는 횟수이다 using System; using System.Collections.Generic; using System.Linq; namespace _1439 { class ..

C# 5585 거스름돈

거스름돈의 단위를 배열에 저장하고 그 단위의 종류만큼 반복해서 나눠서 몫(그 단위 거스름 돈의 개수)과 나머지(다음 단위 거스름돈으로 나눌 돈)를 구하도록 했다 몫을 누적해서 더해야 총 거스름돈의 개수를 구할 수 있다 using System; using System.Collections.Generic; using System.Linq; namespace _5585 { class Program { static void Main() { int n = int.Parse(Console.ReadLine()); int remainder = 1000 - n; //나머지 저장할 변수 //여기부터 작성 하세요 int[] divisor = { 500, 100, 50, 10, 5, 1 }; int quotient=0; //..

C# 1874 스택 수열

처음에 num의 값이 다르기만 하면 Push 하는 쪽으로 잘못 생각해서 어려웠다 오름차순이니까 Push 할 값이 num보다 작거나 같을 때 Push 해야 함 using System; using System.Text; using System.IO; using System.Collections.Generic; namespace _1874 { class Program { static void Main(string[] args) { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWriter sw = new StreamWriter(Console.OpenStandardOutput()); StringBuilder sb = new Stri..

C# 11659 구간 합 구하기4

입력 받은 값을 ' ' 기준으로 나누고 int형으로 전환해서 저장하게 만들었다 이 부분이 제일 번거로웠다 백준 사이트에서 시간초과 뜨길래 using, StreamWriter 이용했다 using System; using System.Collections.Generic; using System.Linq; using System.IO; namespace _11720 { class Program { static void Main() { using (var sw = new StreamWriter(Console.OpenStandardOutput())) { string arrNM = Console.ReadLine(); string[] arrnm = arrNM.Split(' '); int N = Convert.ToIn..

C# 11720 숫자의 합

Int.Parse(string str): 문자열을 정수로 바꿔준다 strnum[i]는 char 타입이므로 다시 문자열로 바꿔서 Int.Parse()에 넣어주었다 using System; namespace _11720 { class Program { static void Main(string[] args) { int N = int.Parse(Console.ReadLine()); string strnum = Console.ReadLine(); //여기서 부터 작성하세요 int sum = 0; for (int i = 0; i < N; i++) { int num = int.Parse(strnum[i].ToString()); sum += num; } Console.WriteLine(sum); } } } 참고 ht..

C# 1120 문자열

A="addabc", B="aababbc"일 때 A에 어떤 문자를 넣든 어차피 차이가 최소가 되도록 할 것이므로 B와 가장 비슷해지도록 만들 것이다 A[0]부터 A[5]를 B[0]부터 B[5]와 비교했을 때의 차이: 3 A[0]부터 A[5]를 B[1]부터 B[6]와 비교했을 때의 차이: 2 이렇게 모든 경우를 비교 했을 때 차이의 최솟값은 2가 나온다 마찬가지로 다른 예제들도 최솟값을 찾을 수 있다 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Study13 { class App { public App() { //BOJ 1120..

반응형