본문 바로가기
728x90

코딩테스트/프로그래머스89

해시 > 완주하지 못한 선수 [ 풀이 ] 첫번쨰 도전. 이중 반복문으로 풀기 그냥 계속 반복해나가면서 같은거 발견하면 하나씩 지우고 하면 되겠지~ 하고 짰는데 입출력 예시 2, 3번이 안됐다.. 아직도 왠지는 모르겠어. 찾아보니까 이중반복문쓰면 빅오가 제곱이랬나? 암튼 그래서 시간 초과인거 같기도 하고..? 백준은 시간초과라고 뜨는데 얜 안떠서 모르겠다 두번째 도전. unordered_map 결국 못참고 구글링했다,,,따쒸 공부해야지 암튼 찾아봤는데 hash_map이랑 비슷한 라이브러리인 unordered_map 써서 구현한다고 하더라고... 근데 나 둘다 뭔지 모르는거 보고 좀 충격먹어서 c++ 기본 STL먼저 공부하려고,,, 이 방법이 제일 좋은 거 같아서 STL먼저 공부하고 다시 도전해볼거임! 세번쨰 도전. sort 가장 간단.. 2021. 8. 20.
탐욕법(Greedy) > 구명보트 [ 풀이 ] 첨엔 그냥 풀다가 위에 보니까 보트에 탈 수 있는 사람이 2명으로 제한되었더라고 그래서 딱 생각한게 그럼 앞에서부터 비교하면서 둘이 합쳐서 limit를 안넘으면 보낼까? 하고 했는데 테스트 반은 통과를 못했더라고,, 그래서 염또구,,, 또 구글링했지모야 그랬더니 최대랑 최소를 묶어서 보내래 뭔말이야 했는데 이걸 벡터로 정렬하고, 뒤에서부터 차근차근 뺴는거지 어차피 젤 무거운 사람은 혼자 타야되는데 만약 가벼운애랑 태울수있으면 보내는거고 아님 말고~ 식으로 얘는 생각보다 쉽게 풀었다 근데 벡터를 많이 안써봐서 그거 검색했다ㅠ vector.size( ) : 벡터 사이즈 vector.back( ) : 벡터 맨 뒤 값 vector.push_back( ) : 벡터 맨 뒤의 값 빼기 그렇게 완성된 코드.. 2021. 8. 15.
탐욕법(Greedy) > 큰 수 만들기 아... 안녕하세요 똥멍청이고요.. 제 풀이과정은... 이번에도 실패했습니다.... 또 다른 사람 풀이를 봤습니다 1) 첫번째 시도 만들 수 있는 모든 경우의 숫자를 만들어서 배열에 저장 -> 그 중 최댓값 찾기 중간에 고민해봤는데 경우의 수가 너무 많고, 모든 경우의 수를 반복문으로 만드는 과정이 생각보다 어려워서 패스,,,ㅠ 2) 구글링 결국 구글링해서 다른 사람 풀이를 봤다 다 이해는 갔다 만들 문자열의 길이는 number.length( )-k 고, 순서는 고정이니까 앞에서 선택할 수 있는 숫자 들 중 큰 수를 골라가는 과정을 하면 된다 그래서 고민한게 당연히 이중 반복문 써야되고 첫번째 반복문은 answer의 길이만큼 반복, 즉 첫번째 반복문에서 iterator는 answer의 인덱스가 되는거지 .. 2021. 8. 14.
탐욕법(Greedy) > 조이스틱 [ 문제설명 ] [ 풀이과정 ] 하 씨 어려워ㅠ 알파벳 이동 조이스틱은 그냥 반복문 돌면서 따로 구해서 더하구 이거 포인트는 좌우 이동 횟순데 중간에 A로만 이뤄진 문자열 없으면 문자열 길이-1 이 이동횟수고 아니면 왼쪽오른쪽 왔다갔다 해야되는데 left+right+min(left,right)가 되겠지 뭐 여기서 left는 A문자열 기준 왼쪽으로 가는거 right는 오른쪽인데 왼쪽은 A문자열 시작 위치기준이고 오른쪽은 전체 길이에서 A문자열 길이+위치 뺀만큼이겠지 이거 고민하는데 머리 터질뻔 사실 구글링함ㅋ 암튼 아래가 내 코드ㅠ #include #include #include using namespace std; int solution(string name) { int answer = 0; int mo.. 2021. 8. 14.
탐욕법(Greedy) > 체육복 전체 n명의 학생 lost 벡터에 체육복 잃어버린 학생 번호 저장 reserve 벡터에 체육복 여분 있는 학생 번호 저장 단, 체육복은 앞번호 혹은 뒷번호 학생에게만 대여 가능 #include #include #include using namespace std; int solution(int n, vector lost, vector reserve) { int answer=0; vector student(n); for(int i=0;i 2021. 8. 13.
728x90