질문글 올리고 싶어도 10 개 맞추라 해서 올리지도 못해서 여기에 올려볼게
문제 번호는 1712 c#으로 만들었어
using System;
using System.Collections.Generic;
using System.Text;
namespace C3Study
{
class Class1
{
static int Main(string[] args)
{
uint[] arr = new uint[3] { 0,0,0};
for (int i = 0; i < arr.Length; i++)
{
arr[i] = uint.Parse(Console.ReadLine());
}
if (arr[1] >= arr[2])
{
Console.WriteLine("-1");
}
else
{
Console.WriteLine(arr[0] / (arr[2] -arr[1]) + 1);
}
return 0;
}
}
}
readline으로 읽으면 한 줄을 다 읽으니까 parse를 못 하지 FormatException 뜨는거 적혀 있잖아 런타임에러 뭔지에 try catch로 의심가는구역 체크해보고
방금 니 코드 적절히 수정해서 맞았습니다 받았음 우선 난 C# 전혀 안 해서 100% 구글링으로 뭐가 문제였나 찾았음 니가 적은 코드에서 arr[i] = uint.Parse(Console.ReadLine()); 로 입력받는 거 있는데 Console.ReadLine()은 한 줄을 입력받는 함수고 입력은 '2 30 49' 와 같이 들어옴 문제는 그 입력받은 '2 30 49' 같은 걸 정수형으로 바꾸려했다는 거임 바꿀 수 있는 데이터는 '2', '30' 같은 거지 '2 30 49' 가 아님. 그렇기 때문에 정수가 아닌 걸 정수로 바꾸려했다고 런타임 오류남 (System.FormatException: Input string was not in a correct format.)
그래서 어떻게 고쳤냐면 우선 Console.ReadLine()으로 한 줄을 받은 다음 그걸 쪼개서 data라는 변수에 저장되도록 했음 --> string[] data = Console.ReadLine().Split(' '); 이렇게 하면 data는 ['2', '30', '49'] 와 같이 값이 저장됨 그 다음으로 밑에 parse하는 부분을 이렇게 했음 --> arr[i] = uint.Parse(data[i]); 이렇게 하면 data[i]는 '2', '30', '49' 중 하나의 값을 가지니 정수로 제대로 형변환이 가능함
아 그렇네 string[] input = Console.ReadLine().Split(' '); 으로 분류하고 uint[] arr = new uint[3]; for (int i = 0; i < input.Length; i++) { arr[i] = uint.Parse(input[i]); } 로 다시 해주니깐 된다 ㄳㄳ 처음이라 잘몰랐다
일일이 파싱하는게 귀찮으면 Array.ConvertAll(Console.ReadLine().Split(), int.Parse) 써보셈ㅋㅋ