프로그래머스 코딩테스트 연습
[프로그래머스 코테 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("!@#$%^&*(\\\'\"<>?:;");
이렇게 변경하니 통과!