https://www.acmicpc.net/problem/11728
이정돈 풀것지 하면서, 도전한 문제인데...
아무리 해도해도 시간초과나서 자존심 -32% 떡락하는 중입니다.
뭐가 문제인걸까요...
using System;
using System.IO;
using System.Text;
namespace 콘솔테스트
{
class Program
{
static void Main(string[] args)
{
StreamReader sr = new StreamReader(Console.OpenStandardInput());
StringBuilder sb = new StringBuilder();
string[] index = sr.ReadLine().Split(' ');
int n = int.Parse(index[0]);
int m = int.Parse(index[1]);
int[] a = Array.ConvertAll(sr.ReadLine().Split(' '), s => int.Parse(s));
int[] b = Array.ConvertAll(sr.ReadLine().Split(' '), s => int.Parse(s));
int a_index = 0;
int b_index = 0;
while (a_index < n && b_index < m)
{
if (a[a_index] < b[b_index])
{
sb.Append(a[a_index++] + " ");
}
else
{
sb.Append(b[b_index++] + " ");
}
}
while (a_index < n)
{
sb.Append(a[a_index++] + " ");
}
while (b_index < m)
{
sb.Append(b[b_index++] + " ");
}
Console.Write(sb.ToString());
sr.Close();
Console.ReadLine();
}
}
}
뭐가 문제인걸까요..?
입력 백만개라 c#은 fast io 써야 할 걸?
혹시 예시나 참고링크 받아볼수있을까요..?
https://stackoverflow.com/questions/24620357/faster-ways-of-console-i-o-in-c-sharp
해봤는데 시간초과....;
음...... ㅇ..... .... ... .. .
내장함수써 - dc App
내장함수 뭐쓰면될지 힌트나 참고자료 알려줄수있나...
검색하면 바로 나옴 - dc App
그 내장함수가 머임...
append 하면서 계속 크기 늘어나니까 느린 거 아님? 첨에 sb 크기를 크게 잡아 보셈
ㄴ... 그리해도 안됨 한마디로 ㅈ된듯..
StringBuilder sb = new StringBuilder(1000000000); 이런식으로 넣으면되나.. 안됨... 1% 되자마자, 시간초과 그냥 희망도 안줌....
그럼 sb 쓰지 말고 출력 바로바로 해주는 것도 안됨?
근데 그리고 지금 숫자 잡은 건 너무 큼 a b 둘다 100만이 최대니까 200만만 잡아도 되는데 지금은 억 단위로 잡은 것 같은데? 한 2000020정도로 잡아도 안 됨?
stringbuilder가 모아서 한방 출력이라 바로바로 출력하는건 더 느릴테니 안해봤고 2000020으로 잡아서 해도 보디가드가 입구컷해버린거마냥 1%에서 바로 시간초과뜸...
Array.Sort도 통과 안되네 해보니
ㅇ... 파이썬은 다들 잘풀던데
문제 풀면서 C# 한테 서러움 느끼는중...
맨밑에 readline에서 대기하는거 아님?
ㄴㄴ.. 아님... 빼도안됨...
C#으로 푼유저 2명뿐이던데 개 고인물 2명임... 난 고인물은 아니라 어케푼지 개궁금...
엥 8명이야 그중에 골5도 있던데
... 어케한걸까...
c++로 해봤는데 이거 시간초과가 데이터 크기 때문이 아니라 중복 요소인 경우도 처리해줘야 함
ㅇㅇ? 중복인경우 처리라는게 1 1 2 1 1 3 1 1 1 1 2 3 이런식이 아니라 1 2 3 이리나와야된다는거? 이말아니면, 저 코드로도 인덱스마다 비교진행해서, "1 1 1 1 2 3" 나오는디...
https://ideone.com/iYQyC9
https://ideone.com/2dPqei
코드
결과... 음
C# 잘 모르겠는데 코드 보면 거의다 리스트 두개 다 더해서 정렬하고 출력하는게 끝이던데
그방법도 해봄.. C#에도 List.AddRange("합칠배열") 이렇게 가능은한데, 바로 시간초과남...
정답 C#코드들을 본거라 너가 뭔가 잘못했을듯?
위에있는 fastio에 linq랑 스트링 1도안쓰고 전부다 바이트로 때려박으니까 통과함
통과코드 보니깐 streamreader/writer 둘다씀. 로직같은사람도 있는걸로봐선 입출력문제인것같음
ㅁㅊ streamreader/writer 쓰니까 통과함 ㄳㅇ