[백준 1091 : 카드 섞기 ]
이 문제도 5달 전에 풀었다가 포기했었던 문제였나보다.
오늘 틀렸던 문제 다시풀기 중 풀게 되었다.
문제를 읽는데 헷갈려서 머리카락 한 10번은 쥐어짠듯.
아마 전에 풀었을때는 P배열이 각 카드가 최후에 어떤 사람한테 가야하는 지를 명시하는건데 이걸 모르고 풀었던 것 같다.
문제 설명도 좀 이상하다. 일단 초기 카드 순서가 어떻게 설정되어있는지를 알려주지 않는다.
알려주지 않아서 카드가 0~N-1순서로 되어있게 설정하고 풀었다.
내가 푼 방식은
카드 상태 배열 변수 한 개, 그 전 카드 상태 배열 변수 한 개,
카드 섞인 모습은 해시에 계속 저장, 각 카드의 섞인 모습 저장용 벡터 배열 한개.
이렇게 놓고 풀어따.
WHILE(1) 속에서 한 번이라도 HASH[카드가 섞인 모습]에 값이 있으면 종료하고
이건 P배열처럼 카드가 이동하지 않았다는 것이므로 -1을 출력한다.
만약 WHILE(1)이 끝나기 전에 각 카드의 벡터 마지막 인덱스가 각 P배열과 일치한다면
그때가 최소 횟수로 카드 섞었을 때이니 카운트를 출력하고 프로그램을 종료시켰다.
변수가 좀 난잡한데 나중에 좀 더 깔끔하게 수정해야겠다.
그리고 이번엔 그냥 라이브러리 다 사용했는데 연습할때는
최대한 라이브러리를 구현해서 하는 편인데 귀찮아서 그냥 해버렸다. 이것도 나중에 자료구조 직접 구현해서 다시 풀어봐야 할 듯.
이 블로그 검색
피드 구독하기:
댓글 (Atom)
-
[ 백준 2528 : 사다리 ] 시뮬레이션문제 시뮬레이션이나 구현 문제의 차이점을 잘 모르겠다. 나는 시간이나 상황에따라 계속 변하는 것을 구현 하는것은 시뮬레이션이라 하고 딱 멈춰진 시간, 상황에 맞는 답을 구하는 것은 구현이라고 생각하...
-
[ 백준 1389 : 케빈 베이컨의 6단계 법칙 ] 한 지점을 기준으로 목표점에 얼마나 많은 간선을 지날 수 있는지를 묻는다. 그리고 그 수의 합이 가장 작은 기준 지점이 어떤 점인지를 묻는 문제이다. N이 100이다. 1을 기준으로 하고 ...
-
[ 백준 1806 : 부분합 ] 간만에 손도 풀고 감도 익힐겸 사이트에 들어갔는데 그냥 먼저 보이는 문제 하나 집어서 풀었다. 이 문제를 처음 읽고 메모이제이션해놓으면 편할것 같은데.. 생각하고 일단 바로 메모를 해놨다. DP라는 배열에 현재까...
[백준 16236] 아기 상어
[ 백준 16236 : 아기 상어 ] 2018 삼성전자 sw직무 하반기 기출문제입니다. 역대 삼성전자 기출문제가 그렇듯 역시나 BFS,DFS,완탐,DP,단순구현 입니다. 저는 문제를 단순히 BFS로 풀어갔습니다. 조건만 잘 지킨다면 한번에 ...
소스가 안보여요
답글삭제