본문 바로가기

프로그래머스69

[코딩테스트 연습] 점프와 순간이동 문제: https://programmers.co.kr/learn/courses/30/lessons/12980 N이 10억이하의 자연수이므로 BFS 탐색을 하면 그대로 터지는 문제입니다. 순간이동은 공짜이므로 순간이동을 가장 많이 한다면 그 값이 최소비용이 될 것입니다. 그러면 주어진 수에서 점프하는 거리를 최대로 줄이다 보면 1을 초과하는 거리는 점프를 할 필요가 없습니다. 즉, 주어진 수를 이진수로 나타내면 1로 나타나는 지점이 어쩔 수 없이 점프를 해야하는 지점입니다. 그러니 이진수를 만든 후 거기서 1의 개수를 세면 그게 최소비용이 됩니다. 코드: https://github.com/cottory/algorithm/blob/master/PROGRAMMERS/summer_winter01.cc 2020. 5. 15.
[코딩테스트 연습] 영어 끝말잇기 문제: https://programmers.co.kr/learn/courses/30/lessons/12981 단어의 중복 여부는 set으로 관리하고 단어의 마지막 단어만 char nxt로 관리하여 다음 단어의 첫 글자랑 같은 지 비교해주었습니다. 총 인원수가 N명일 때, M번째 순서에 탈락자가 발생했다면 M % N = N명의 인원 중 자신의 순서 M / N = 지나간 턴 횟수 위와 같은 관계가 성립합니다. 0부터 시작하니 둘 다 +1을 해줘야 원하는 숫자가 나옵니다. 코드: https://github.com/cottory/algorithm/blob/master/PROGRAMMERS/summer_winter15.cc 2020. 5. 15.
[코딩테스트 연습] 예산 문제: https://programmers.co.kr/learn/courses/30/lessons/12982 그리디 문제입니다. 예산을 오름차순 정렬한 뒤 앞에서부터 예산을 분배하면 그게 답이 됩니다. 코드: https://github.com/cottory/algorithm/blob/master/PROGRAMMERS/summer_winter14.cc 2020. 5. 15.
[코딩테스트 연습] 멀쩡한 사각형 문제: https://programmers.co.kr/learn/courses/30/lessons/62048 수학문제입니다. 풀이는 아래 링크의 내용을 확인하시는 게 좋습니다. https://leedakyeong.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%A9%80%EC%A9%A1%ED%95%9C-%EC%82%AC%EA%B0%81%ED%98%95-in-python 코드: https://github.com/cottory/algorithm/blob/master/PROGRAMMERS/summer_winter13.cc 2020. 5. 15.