출처: 프로그래머스 코딩 테스트 연습
https://school.programmers.co.kr/learn/courses/30/lessons/120887
나의 풀이
using System;
public class Solution {
public int solution(int i, int j, int k) {
int answer = 0;
// Convert.ToChar(k)는 아스키 코드에 대한 변환이라서 여기서는 사용 X
char targetChar = k.ToString()[0]; // char.Parse(k.ToString());
for(int num = i; num < j + 1; num++)
{
foreach(char item in num.ToString())
{
if(item == targetChar)
answer++;
}
}
return answer;
}
}
다른 사람의 풀이 1
using System;
using System.Linq;
public class Solution {
public int solution(int i, int j, int k) =>
Enumerable.Range(i, j - i + 1)
.Select(x => x.ToString().Where(y => y.Equals(k.ToString().First())).Count())
.Sum();
}
- Enumerable.Range 상당히 유용해보이는데 자주 까먹는다. 사용법 숙지할 것.
다른 사람의 풀이 2
using System;
public class Solution {
public int solution(int i, int j, int k) {
int answer = 0;
for(; i <= j; i++)
{
foreach(char c in i.ToString())
{
if(c - 48 == k)
answer++;
}
}
return answer;
}
}
- ASCII 코드는 숫자 48 ~, 소문자 65~ 대문자 97~ 부터 시작한다.
- char는 ASCII 코드 인덱스 기준으로 int랑 연산이 가능하다.
(char-ASCII 연산 예시)
char x = '9'; // '9' = ASCII 57
int b = x - '0'; //That is '9' - '0' = 57 - 48 = 9
'🛡️ 코딩테스트 > 🛡️ 코테 : 프로그래머스' 카테고리의 다른 글
C# 3진법 뒤집기 - 프로그래머스 [Lv.1] (0) | 2023.01.22 |
---|---|
C# 핸드폰 번호 가리기 - 프로그래머스 [Lv.1] (0) | 2023.01.11 |
C# 암호 해독 - 프로그래머스 [Lv.0] 코딩 테스트 입문 (0) | 2022.12.24 |
C# 모음 제거 - 프로그래머스 [Lv.0] 코딩 테스트 입문 (0) | 2022.12.20 |
C# 대문자와 소문자 - 프로그래머스 [Lv.0] 코딩 테스트 입문 (0) | 2022.12.17 |