코딩 테스트 29

C# 2581 소수

처음에 소수는 1보다 커야한다는 것을 간과해서 틀렸는데 그 부분을 고려해서 다시 작성했다 using System; using System.Collections.Generic; using System.Linq; namespace _2581 { class Program { static void Main(string[] args) { //소수는 1보다 커야 한다 int m = int.Parse(Console.ReadLine()); int n = int.Parse(Console.ReadLine()); List decimalNums = new List(); if (m > n) Console.WriteLine(-1); else { if (m == 1) m = m + 1; for (int i = m; i

C# 10162 전자레인지

만약 입력값 T가 C에 설정된 10으로 나누어 떨어지지 않으면 바로 -1 출력 그렇지 않으면(T가 10으로 나누어 떨어지면) 반복문을 통해서 각 버튼 A, B, C를 누르는 횟수의 모든 경우 i, j, k에 대해서 i*300+j*60+k*10==T가 되는 i, j, k와 countSum(i + j + k)을 구해서 구조체 리스트에 담고 countSum의 최솟값을 기억하는 과정을 반복한다 이때 반복하는 횟수는 T/각 버튼에 설정된 시간이다 (0부터 최대로 누르는 횟수까지 검사) 단, i, j, k가 0일 경우 반복 조건을

C# 2231 분해합

문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 예제 입력 1 216 예제 출력 1 198 자연수 N을 입력 받고 N의 가장 작은 생성자 M..

C# 1654 랜선 자르기(틀림)

아래 참고한 블로그랑 똑같이 작성한 것 같은데 계속 틀렸다고 나온다 처음에 int 타입으로 변수 정의한 것 때문에 오버플로우로 틀린 것 같아서 uint, long 다 해봤는데도 틀렸다고 나온다 체크 못한 부분이 있는 것 같다 using System; using System.IO; using System.Linq; namespace _1654 { class Program { static void Main(string[] args) { StreamReader sr = new StreamReader(Console.OpenStandardInput()); StreamWriter sw = new StreamWriter(Console.OpenStandardOutput()); int[] kn = Array.Conver..

C# 옹알이 (1)

while문 안에서 babbling[i]의 값에 "aya", "ye", "woo", "yma"가 존재하면 그 문자열을 " "로 대체한 후 for문에 들어가서 babbling[i][j]의 값이 모두 ' ' 로 대체되었는지 확인하고 모두 대체되었으면 발음 가능한 단어 수를 +1 했다 using System; namespace Programmers { class Program { static void Main() { string[] babbling = { "aya", "yee", "u", "maa", "wyeoo" }; var result = new Solution().solution(babbling); Console.WriteLine(result); } } public class Solution { publ..

C# Two Sum

힌트를 어떻게 활용해야 할지 모르겠어서 그냥 숫자마다 비교하는 방식으로 작성했다 using System; using System.Collections.Generic; using System.Linq; using System.Collections; using System.Text; namespace TwoSum { class Program { static void Main() { int[] nums = { 2,7,11,15 }; int target = 9; var result = new Solution().TwoSum(nums, target); Console.Write("["); for (int i = 0; i < result.Length; i++) { Console.Write("{0}", result[i..

C# 완주하지 못한 선수

participant의 값들을 Dictionary에 저장한다 이때 동명이인이 있을 수 있으므로 key에 저장하지 않고 value에 저장했다 단순히 dic의 value와 completion의 값들이 일치할 경우 dic의 value를 삭제하는 게 아니라 FirstOrDefault() 메서드가 시퀀스의 첫번째 요소를 반환한다는 점을 이용해서 동명이인 중 한 명만 완주했을 경우의 문제를 해결했다 using System; using System.Collections.Generic; using System.Linq; namespace Runner { class Program { static void Main(string[] args) { string[] participant = { "marina", "josipa"..

C# 2003 수들의 합2

투포인터 알고리즘 순차적으로 접근해야 할 때 두 개의 점(시작점과 끝점)의 위치를 기록하며 처리하는 알고리즘 1. 시작점과 끝점이 첫번째 원소의 인덱스를 가리키도록 한다 2. 현재 부분 합이 m과 같다면 카운트한다 3. 현재 부분 합이 m보다 작다면 end를 1 증가시킨다 4. 현재 부분합이 m보다 크거나 같다면 start를 1 증가시킨다 5. 모든 경우를 확인할 때까지 2번부터 4번까지의 과정을 반복한다 using System; namespace _2003 { class Program { static void Main(string[] args) { //수열의 크기 n, 경우의 수를 구할 합 m int[] nm = Array.ConvertAll(Console.ReadLine().Split(' '),int..

C# 2979 트럭 주차

처음에 트럭이 주차장에 있을 수 있는 경우의 수를 고려해서 너무 복잡하고 어려웠는데 다른 블로그 참고해서 생각을 정리할 수 있었다 배열을 저렇게 많이 만들어도 되나 싶긴한데 제출하면 맞았다고 나온다 using System; using System.Linq; namespace _2979 { class Program { static void Main(string[] args) { //비용 입력받기 int[] costs = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse); //트럭 출입 시간 입력받기 int[] truck0= Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse); int[] truck1..

반응형