내일배움캠프 - TIL/내일배움캠프 - TIL

내일배움캠프 9일차 코딩테스트 연습하기(타일 채우기 - 백준 15700, 모음의 개수 - 백준 1264)

rudals4469 2025. 4. 22. 20:19

타일 채우기 4 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
0.1 초 512 MB 8475 4944 4612 60.162%

문제

N×M 크기의 벽에 2×1, 1×2 크기의 타일을 채우려고 한다. 겹치지 않게 놓는다면, 최대 몇 개를 채울 수 있을까?

입력

첫째 줄에 N과 M이 주어진다. (1 ≤ N, M ≤ 1,000,000,000)

출력

첫째 줄에 채울 수 있는 타일 개수의 최댓값을 출력한다.

예제 입력 1 복사

1 2

예제 출력 1 복사

1

예제 입력 2 복사

1 3

예제 출력 2 복사

1

예제 입력 3 복사

2 2

예제 출력 3 복사

2

예제 입력 4 복사

3 3

예제 출력 4 복사

4
using System;
using System.ComponentModel;

namespace CodingExercise
{
    internal class Program
    {
        static void Main(string[] args)
        {
            long[] s = Array.ConvertAll(Console.ReadLine().Split(),long.Parse); // 가로, 세로


            long max = (s[0] * s[1]) / 2;

            Console.WriteLine(max);
        }
    }
}

 

처음에는 알고리즘을 어떻게 구현해야 될 지 몰라서 헤매고 있었는데 결국 1x2 , 2x1 은 넓이가 2이고 입력 받는 크기의 넓이를 구하여 2로 나누면 갯수를 구할 수 있다는 사실을 깨닫고 구현하였다.

분명 입,출력은 제대로 나오는데 자꾸 틀렸습니다. 가 떠서 왜 이러지 하면서 뒤적거리다가 int 배열로 받아 1000000000 100000000 같은 큰 수는 계산이 안되는 걸 확인하였다. 그리고 나선 long으로 처리하여 제출했더니 되었다.

알고리즘 문제를 풀면서 데이터 타입을 신경썻던 적이 없는데 앞으론 데이터 타입도 신경써서 문제를 풀어야 겠다.

 

모음의 개수 

한국어   
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB 32637 16767 15120 53.758%

문제

영문 문장을 입력받아 모음의 개수를 세는 프로그램을 작성하시오. 모음은 'a', 'e', 'i', 'o', 'u'이며 대문자 또는 소문자이다.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 영어 대소문자, ',', '.', '!', '?', 공백으로 이루어진 문장이 주어진다. 각 줄은 최대 255글자로 이루어져 있다.

입력의 끝에는 한 줄에 '#' 한 글자만이 주어진다.

출력

각 줄마다 모음의 개수를 세서 출력한다.

예제 입력 1 복사

How are you today?
Quite well, thank you, how about yourself?
I live at number twenty four.
#

 

예제 출력 1 복사

7
14
9

 

internal class Program
{
    static void Main(string[] args)
    {
        
        

        while (true)
        {
            int count = 0;

            string s = Console.ReadLine().ToLower(); // 소문자로 인식하기 위함


            for (int i = 0; i < s.Length; i++)
            {
                if(s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u')
                {
                    count++;
                }
            }



            if( s=="#")
            {
                break;
            }

            Console.WriteLine(count);

        }

       


    }
}

 

문자열을 a, e, i, o, u로 판정하게 해놓아서 대문자가 들어왔을 때 인식을 못하는 문제가 있었다. 그래서 문자열을 입력 받을 때 소문자로 바꿔주는 ToLower()를 통해 모두 소문자로 변한시킨 뒤 갯수를 세게 만들었다.