4개의 댓글이 있습니다.
-
-
Taeyoon_Lee -
- 0으로 나누는 경우가 있는지 본다.
- sqrt같은 실수 관련 함수를 썼다면, 잘못된 값이 들어가는 경우는 없는지 생각해본다. (예를 들자면, sqrt(x)에서 x가 -0.00000001인 경우 Runtime Error 발생)
13년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
freedomJ
이 문제... 예전에 코딩해서 솔루션은 도출했는데, 채점서버가 계속 런타임에러를 뱉어서...; 결국 다음문제로 그냥 넘어간 슬픈사연이 ㅠㅠ
문제를 간략히 요약하면 다음과같습니다.
이 문제에서 password는 5글자이고, Password는 6*5 행렬로 줍니다. 행은 별의미 없고, 1열부터 5열까지 각 열 위치에 해당 Password를 포함하고 있으면 됩니다.
예를 들어 Password가 COMPU라고 가정하면, 비밀번호입력을 아래와 같이 준다면 통과가 됩니다.
AYGSU
DOMRA
CPFAS
XBODG
WDYPK
RBCDE
또는
CBOPT
DOSBG
GTRAR
APMMS
WSXNU
EFGHI
1열에 C가 존재하고, 2열에 O, 3열에 M, 4열에 P 5열에 U가 각각 존재하기 때문입니다.
따라서 5글자의 PASSWORD로 여러가지 INPUT이 존재할 수 있습니다. (PASSWORD 입력인 6*5 행렬을 GRID라 하겠습니다.)
문제의 INPUT은 2개의 GRID와 Order k가 주어집니다. (k의 범위는 1이상 7777미만 입니다.)
그럼 2개의 GRID로 비밀번호가 될 수 있는 후보들이 나오겠지요.
그중에 k번째 password를 출력하는 문제입니다.
물론 2개의 GRID로 보았을때 k개의 비밀번호 후보가 없는경우 No를 출력하면 됩니다.
스포일러 box 어떻게 사용하는지 몰라서...; 저의 생각을 적어봅니다 ( ;;; )
저는 이 문제 접근을 입력받은 2개의 6*5 그리드와 같은 크기의 6*5 CHAR 행렬을 만들고
2개의 GRID중에 각 열별로 중복되는 부분만 넣습니다. (이때 몇개씩 중복되는지도 체크)
예제의 경우 예를 들면
AOGAU
DPMPS
CBO
WB
[4 4 3 2 2] : 각 열별 중복되는 갯수
이렇게 저장이 되고, 열단위 SORT를 한뒤, 중복값을 제거합니다.
ABGAG
COMPS
DPO
W
[4 3 3 2 2]
4*3*3*2*2가 K를 초과하면 계속진행하고 작거나 같으면 No를 출력하고 끝납니다.(정확히 말하면 TESTCASE를 실행합니다.)
K번째를 뽑을때 꽤나 번잡스런 수식이 들어가지만 뽑아냅니다. (이 부분은 다소 수학적인 내용이기때문에 생략하겟습니다 ^^;)
저는 문제를 이렇게 접근하고 풀었는데, 코딩을 잘못해서 그런지 Runtime error가 뜹니다 ㅠㅠ,
알고리즘은 맞게 구축했는지 궁금해서 질문올립니다. 혹은 다른 해법이 있으신분은 설명 좀 부탁드립니다.
덧붙여서 Runtime error잡는 노하우 좀 전수해주십시오(--)(__)(--)
13년 전