[C_C++]코딩테스트 연습

    [C++] 프로그래머스 - 키패드 누르기 (배열 노가다 + 지향할 풀이)

    [C++] 프로그래머스 - 키패드 누르기 (배열 노가다 + 지향할 풀이)

    문제 내 풀이 풀이 방법 ) - 1, 4, 7 : L - 3, 6, 9 : R - 2, 5, 8, 0 : ① 엄지 거리 - 가까운 손 (dist가 더 작은 것) ② 거리 같을 때 - 왼손잡이냐 오른손잡이냐 거리 : 각 키패드 번호에서 각 번호까지의 거리를 담은 배열들을 선언했다. 배열의 인덱스가 0부터 시작하는 점을 이용해 각 자리까지의 거리를 각 인덱스 자리에 맞게 넣었다. 현재 위치 : 왼손 위치는 left, 오른손 위치는 right에 담고 초기 위치를 -1로 설정했다. 눌러야할 키패드가 2,5,8,0일 때만 거리와 왼손/오른손잡이 여부를 생각한다. 왼손/오른손의 현재 위치를 받아 각각에 대한 switch 문을 실행한다. 현재 위치에 따라 미리 만들어뒀던 키패드 자리의 거리배열을 선택하여 눌러야할 번..

    [C++] 프로그래머스 - 징검다리 건너기

    [C++] 프로그래머스 - 징검다리 건너기

    주의) '느리게' 징검다리 건너기... 효율성 0... #include #include using namespace std; int solution(vector stones, int k) { int answer = 0; int jump = 0; while (jump 0) { stones[i]--; jump = 0; } else { jump++; if (jump >= k) return answer; } } answer++; } return answer; } 이렇게 돌리면 코드가 힘겹게 정확성 테스트를 완료하고 효율성 테스트에서는 모조리 시간초과 실패를 띄운다. ㅎㅎ....ㅠ..

    [C++] 프로그래머스 - 두 개 뽑아서 더하기 (벡터, sort, find)

    [C++] 프로그래머스 - 두 개 뽑아서 더하기 (벡터, sort, find)

    내 풀이 #include #include #include #include using namespace std; vector solution(vector numbers) { vector answer; vector::iterator isFind; for (int i = 0; i < numbers.size()-1; i++) { for (int j = i+1; j < numbers.size(); j++) { isFind = find(answer.begin(), answer.end(), numbers[i] + numbers[j]); if (isFind == answer.end()) answer.push_back(numbers[i] + numbers[j]); } } sort(answer.begin(), answer..

    [C++] 프로그래머스 - K번째 수 (벡터 공부)

    [C++] 프로그래머스 - K번째 수 (벡터 공부)

    #include #include #include using namespace std; vector solution(vector array, vector commands) { vector answer; vector temp; for (int i = 0; i < commands.size(); i++) { temp = array; sort(temp.begin()+ commands[i][0] - 1, temp.begin()+ commands[i][1]); answer.push_back(temp[commands[i][0] + commands[i][2] - 2]); } return answer; } sort와 vector를 이용해서 문제를 풀어보았다. 배열을 사용할 때는 algorithm 헤더의 sort를 이용하려..

    [C++] 프로그래머스 hash 1- 완주하지 못한 선수 (vector만 이용 / 해시 이용)

    [C++] 프로그래머스 hash 1- 완주하지 못한 선수 (vector만 이용 / 해시 이용)

    vector와 algorithm 헤더를 이용한 풀이 sort를 이용해 참가자와 완주자 배열을 정렬해주면, 같은 이름의 참가자들은 각 배열에서 같은 위치에 위치하게 된다. (이 때 sort는 algorithm 헤더를 선언해줘야 사용 가능하다.) 만약 완주하지 못한 참가자가 있다면 각 위치에 다른 이름이 위치하게 되므로 return으로 해당 참가자 이름을 돌려주고, 끝까지 다른 위치가 없다면 참가자가 한명 많으므로 마지막 참가자 이름을 돌려준다. #include #include #include #include using namespace std; string solution(vector participant, vector completion) { sort(participant.begin(), particip..