백준 온라인 코딩 문제풀이
Baekjoon Online Judge
Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.
www.acmicpc.net
코드 참고
wny0320 (박 상운)
Run code live in your browser. Write and run code in 50+ languages online with Replit, a powerful IDE, compiler, & interpreter.
replit.com
4673, 1065에 대해서 다룸
- 15596은 언어 제한 때문에 C#으로 제출하지 못하여 패스
4673
using System;
using System.Collections.Generic;
class Program
{
public static void Main(string[] args)
{
List<int> num_list = new List<int>();
int self_num(int _num)
{
int first = _num / 10000;
int second = _num / 1000 - _num / 10000 * 10;
int third = _num / 100 - _num / 1000 * 10;
int fourth = _num / 10 - _num / 100 * 10;
int fifth = _num % 10;
int new_num = _num + first + second + third + fourth + fifth;
return new_num;
}
for(int i = 1; i <= 10000; i++)
{
num_list.Add(self_num(i));
}
for(int i = 1; i <= 10000; i++)
{
if(num_list.IndexOf(i) == -1)
{
Console.WriteLine(i);
}
}
}
}
self_num이라는 메서드 생성
각 자리수를 구해서 변수로 지정(first ~ fifth)
- * 10 을 먼저 할 경우 몫이 변동될 수 있으므로 나누고 곱함
1~10000까지 self_num 메서드를 실행하여 나온 모든 값을 List에 추가
1~10000까지 출력하는 반복문에서 num_list.IndexOf() 메서드를 실행
IndexOf는 해당 list 안에 index 값이 없으면 -1을 반환하기 때문에 없는 수가 셀프넘버
1065
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static void Main(string[] args)
{
List<int> num_list = new List<int>();
int times = Int32.Parse(Console.ReadLine());
bool Is_hansu(int _num)
{
int first = _num / 1000;
int second = _num / 100 - _num / 1000 * 10;
int third = _num / 10 - _num / 100 * 10;
int fourth = _num % 10;
if(_num >= 1000)
{
if(first - second == second - third && second - third == third - fourth)
{
return true;
}
return false;
}
else if(_num >= 100)
{
if(second - third == third - fourth)
{
return true;
}
return false;
}
else
{
return true;
}
}
for(int i = 1; i <= times; i++)
{
if(Is_hansu(i))
{
num_list.Add(i);
}
}
Console.WriteLine(num_list.Count);
}
}
Is_hansu 메서드 생성
전 문제와 동일하게 각 자리 수를 first~fifth까지 저장 후
자리수마다 조건을 달리하여 4자리 수일 경우
천의 자리 수 - 백의 자리수 = 백의 자리수 - 십의 자리수 = 십의 자리수 - 일의 자리수로 비교 후 bool 값 반환
3자리 수 일 경우는 두 개만 비교 후 bool값 반환
2자리 수 아래는 조건없이 한수이기 때문에 바로 true 반환
1~입력받은 수(times) 동안 Is_hansu 메서드 실행 후 true면 리스트에 추가
마지막에 num_list.Count 로 list의 index 갯수 출력
'BaekJoon[C#]' 카테고리의 다른 글
문자열 단계 1152 (0) | 2022.09.27 |
---|---|
문자열 단계 2675 (0) | 2022.09.26 |
1차원 배열 4344 (0) | 2022.09.24 |
1차원 배열 2562 (0) | 2022.09.23 |
반복문 1110 (0) | 2022.09.20 |