프로그래머스 코딩테스트 연습

[프로그래머스 코테 c#] Lv0. Day1 문제풀기

노재두내 2024. 2. 13. 14:35

 

1.문자열 출력하기

public class Example
{
    public static void Main()
    {
        String s;

        Console.Clear();
        s = Console.ReadLine();
        Console.WriteLine(s);
    }
}

그냥 Console.WriteLine(s); 추가하면 되는 간단한 문제였다.

 

2. a와 b 출력하기

Console.WriteLine("a = {0}/n b = {1}", a, b);

이렇게 썼다가 오류나서

using System;

public class Example
{
    public static void Main()
    {
        String[] s;

        Console.Clear();
        s = Console.ReadLine().Split(' ');

        int a = Int32.Parse(s[0]);
        int b = Int32.Parse(s[1]);

        Console.WriteLine("a = {0}",a);
        Console.WriteLine("b = {0}",b);
    }
}

일단은 두줄로 썼다.

 

찾아보자

Console.WriteLine("a = {0}\r\nb = {1}",a,b);

\r\n 이었당. 

 

3. 문자열 반복해서 출력하기

using System;

public class Example
{
    public static void Main()
    {
        String[] input;

        Console.Clear();
        input = Console.ReadLine().Split(' ');

        String s1 = input[0];
        int a = Int32.Parse(input[1]);
        
        for(int i=0;i<a;i++){
        Console.Write(s1);
        }
    }
}

 

 

<다른 사람 풀이>

 

StringBuilder sb = new StringBuilder();    
        for(int i = 0; i < a; i++) sb.Append(s1);

        var str = sb.ToString();
        Console.WriteLine(str);

append로 이어 붙힌 사람도 있었다.

StringBuilder는 Append 함수를 사용하기 위한 클래스?

Append는 문자열을 이어붙일 수 있다.

 

4. 대소문자 바꿔서 출력하기

무슨 65인가 더하면 대문자가 되고 그랬던거같은데 .. 기억이 안난다.

for(int i=0;i<s.length;i++){
	    //소문자인 경우
            if(s[i]>=0&&s[i]<=125){
                s[i]=s[i]+65;
            }
            //대문자인 경우
            else{
                s[i]=s[i]-65;
            }
        }

당연히 어림도 없지 .. 

 

어쩔수 없다 구글링의 힘을 빌려보장 ~.~

하지만 이건 string이니까 문자열의 모든 문자를 대문자 혹은 소문자로 바꾼다.

 

for(int i=0;i<s.Length;i++){
            //소문자인 경우
            if(Char.IsLower(s[i])){
                Char.ToUpper(s[i]);
            }
            //대문자인 경우
            else{
                Char.ToLower(s[i]);
            }
        }

왜 안될까 고민했는데 Console.Write로 출력하니 됐다.

for(int i=0;i<s.Length;i++){
            //소문자인 경우
            if(Char.IsLower(s[i])){
                Console.Write(char.ToUpper(s[i]));
            }
            //대문자인 경우
            else{
                Console.Write(char.ToLower(s[i]));
            }
        }

 

<다른 사람 풀이>

내가 처음에 생각했었던게 이거였다

 

 

5. 특수 문자 출력하기

" 때문에 출력이 이상하다

백슬래시가 등장하는 순간 그 바로 다음 문자를 인식해 상황에 맞게 처리하는데, 이를 이스케이프 시퀀스(Escape Sequence)라고 한다.

\   =>  \\

'   =>  \'

'   =>  \"

Console.WriteLine("!@#$%^&*(\\\'\"<>?:;");

이렇게 변경하니 통과!