최근 C#을 공부하면서 차근차근 기본문제들을 C#을 이용해서 풀기로 했다.
이번에 푼 챕터는 문자열 관련 챕터이며 새롭게 알게 된 개념부터 몇 개만 소개하고 정답 공유 후 포스팅을 마치겠다.
c# 인풋 받기 (input read)
string input = ReadLine(); // string 경우
string[] input = ReadLine().Split(); // string split해서 입력받을 경우
int input = int.Parse(ReadLine()); // int 경우
c# 배열 초기화 (array initialization)
using System.Linq;
int[] freq = Enumerable.Repeat(0, 32).ToArray(); // 32개의 0값을 가지는 배열 생성
Ascii string int 변환
int num = Convert.ToInt32(string_value);
char ch = Convert.ToChar(num);
한 단어 내 반복되는 문자 카운팅 (counting character in word)
using System.Linq;
int count = word.Count(x => x == 'A');
String 내에 반복되는 단어 카운팅 (counting word in String)
// 해당 문자를 기준으로 split 시켜 생성된 배열의 길이를 카운팅하는 방법이다.
int count = sentence.Split(word).Length-1
백준 1157번
using System;
using System.Linq;
using static System.Console;
namespace _1157_FreqWord
{
class Program
{
static void Main(string[] args)
{
int maxFreq = 0;
int[] freq = Enumerable.Repeat(0, 32).ToArray(); // 32개의 0값을 가지는 배열 생성
string word = ReadLine().ToUpper(); // input string 대문자 변환
foreach (char c in word)
{
int value = Convert.ToInt32(c);
freq[value - 65] += 1;
}
maxFreq = freq.Max();
int index_Fword = Array.IndexOf(freq, maxFreq);
int index_Lword = Array.LastIndexOf(freq, maxFreq);
if (index_Fword == index_Lword)
{
WriteLine(Convert.ToChar(index_Fword + 65));
}
else
{
WriteLine("?");
}
}
}
}
백준 1316번
using System;
using System.Linq;
using static System.Console;
namespace _1316_groupWord
{
class Program
{
static void Main(string[] args)
{
int trial = int.Parse(ReadLine());
int counter = 0;
for (int i = 0; i < trial; i++)
{
string word = ReadLine();
for (int j = 0; j < word.Length;)
{
int count = word.Count(x => x == word[j]);
string repeated = new String(word[j], count);
if (word.Split(repeated).Length == 2)
{
j += count;
if (j == word.Length) { counter += 1; }
}
else { break; }
}
}
WriteLine(counter);
}
}
}
백준 2675번
using System;
using static System.Console;
namespace _2675_문자열반복
{
class Program
{
static void Main(string[] args)
{
int trial = int.Parse(ReadLine());
for (int i = 0; i < trial; i++)
{
string[] input = ReadLine().Split();
int n = int.Parse(input[0]);
string word = input[1];
for (int j = 0; j < word.Length; j++)
{
for (int k = 0; k < n; k++)
{
Write(word[j]);
}
}
Write("\n");
}
}
}
}
백준 2908번
using System;
using static System.Console;
namespace _2908_상수
{
class Program
{
static void Main(string[] args)
{
string[] inputSTR = ReadLine().Split();
int[] input = new int[2];
input[0] = int.Parse(inputSTR[0]);
input[1] = int.Parse(inputSTR[1]);
int reversed_1 = (input[0] / 100) + (input[0] % 100 / 10) * 10 + (input[0] % 10) * 100;
int reversed_2 = (input[1] / 100) + (input[1] % 100 / 10) * 10 + (input[1] % 10) * 100;
WriteLine(Math.Max(reversed_1, reversed_2));
}
}
}
백준 2941번
using System;
using System.Linq;
using static System.Console;
namespace _2941_CROATIA
{
class Program
{
static void Main(string[] args)
{
int count = 0;
string input = ReadLine();
char[] inputArr;
inputArr = input.ToCharArray();
count += (input.Split("c=").Length - 1);
count += (input.Split("c-").Length - 1);
count += (input.Split("dz=").Length - 1);
count += (input.Split("d-").Length - 1);
count += (input.Split("lj").Length - 1);
count += (input.Split("nj").Length - 1);
count += (input.Split("s=").Length - 1);
count += (input.Split("z=").Length - 1);
WriteLine(input.Length - count);
}
}
}
백준 5622번
using System;
using static System.Console;
namespace _5622_dial
{
class Program
{
static void Main(string[] args)
{
int time = 0;
string word = ReadLine().ToUpper(); // input string 대문자 변환
foreach (char c in word)
{
int value = Convert.ToInt32(c);
if (value <= 67) { time += 3; }
else if (value <= 70) { time += 4; }
else if (value <= 73) { time += 5; }
else if (value <= 76) { time += 6; }
else if (value <= 79) { time += 7; }
else if (value <= 83) { time += 8; }
else if (value <= 86) { time += 9; }
else if (value <= 90) { time += 10; }
}
WriteLine(time);
}
}
}
'Programming > 백준 문제풀이' 카테고리의 다른 글
백준 2805번 나무자르기 _ 이분탐색 (python) (0) | 2020.04.10 |
---|---|
백준 1629번 곱셈 _ 분할정복 (python) (0) | 2020.04.10 |
백준 1931번 회의실배정 _ 탐욕알고리즘 (Greedy Algorithm) (python) (0) | 2020.03.17 |
백준 2178번 미로 탐색 _ BFS (python) (0) | 2020.03.16 |
백준 2667번 단지번호붙이기 _ DFS (python) (1) | 2020.03.15 |