Algorithm
[프로그래머스] 점프와 순간 이동
문제 문제 설명 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용량을 줄이기 위해 점프로 이동하는 것은 최소로 하려고 합니다. 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용해야 하는 건전지 사용량의 최솟값을 retu..
[프로그래머스] 주차 요금 계산 - 반례
문제 문제 설명 주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다. 요금표 기본 시간(분) 기본요금(원) 단위 시간(분) 단위 요금(원) 180 5000 10 600 입/출차 기록 시각(시:분)차량 번호 내역 05:34 5961 입차 06:00 0000 입차 06:34 0000 출차 07:59 5961 출차 07:59 0148 입차 18:59 0000 입차 19:09 0148 출차 22:59 5961 입차 23:00 5961 출차 자동차별 주차 요금 차량 번호 누적 주차 시간(분) 주차 요금(원) 0000 34 + 300 = 334 5000 + ⌈(334 - 180) / 10⌉ x 600 = 14600 01..
![[프로그래머스] 양궁 대회](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FKdnkk%2FbtrM8JbRDX8%2FAAAAAAAAAAAAAAAAAAAAAPCwSvaEIyCQmezbx2-Xsz8nPGWYrzAdKTkOitBKbpur%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3Dw%252FT8%252FuLKLR%252Byb8GXz2WaobKGJAM%253D)
[프로그래머스] 양궁 대회
문제 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원회는 한 선수의 연속 우승보다는 다양한 선수들이 양궁대회에서 우승하기를 원합니다. 따라서, 양궁대회 운영위원회는 결승전 규칙을 전 대회 우승자인 라이언에게 불리하게 다음과 같이 정했습니다. 어피치가 화살 n발을 다 쏜 후에 라이언이 화살 n발을 쏩니다. 점수를 계산합니다. 과녁판은 아래 사진처럼 생겼으며 가장 작은 원의 과녁 점수는 10점이고 가장 큰 원의 바깥쪽은 과녁 점수가 0점입니다. 만약, k(k는 1~10사이의 자연수)점을 어피치가 a발을 맞혔고 라이언이 b발을 맞혔을 경우 더 많은 화살을 k점에 맞힌 선수가 k ..
![[ETC] 이전 숫자들의 합을 마지막 숫자로 받는 문자열 출력](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbGY8pb%2FbtrM6cTzgVs%2FAAAAAAAAAAAAAAAAAAAAAGUeH0_elGhMjz9vIJ7jDIgS226VGFHFY2aQahHYRvX-%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DcWF3U%252BQM24xvw%252F90f6y9jI2HoCM%253D)
[ETC] 이전 숫자들의 합을 마지막 숫자로 받는 문자열 출력
3번째로 생각나는 문제로 이전 숫자들의 합을 마지막 숫자로 받는 문자열 출력과 관련된 문제가 있었다. 이 각각의 값은 한줄씩 표시되게 되며 1 다음줄은 11 그 다음줄은 112의 구성으로 되어야한다. 처음 문자열의 구성을 보았을때는 다이나믹프로그래밍과 재귀함수를 사용하면 풀이가 쉬울 것이라고 생각하고 구현을 해보았다. - 생각해본 솔루션 def solution(print_str_array): temp_cal = 0 if not print_str_array: print_str_array.append(1) print(*print_str_array) for print_str_array_unit in print_str_array: temp_cal += print_str_array_unit print_str_ar..
![[ETC] 파일 이름 저장하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FSLEqh%2FbtrMWQXJeW3%2FAAAAAAAAAAAAAAAAAAAAAJjZPJliFg4Yp0FnmkqDhYFs2ctB5M4BhCegrl9hfx4q%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3Do7wdk8HYJPH6XKa%252BMjld4gyTxko%253D)
[ETC] 파일 이름 저장하기
방금 풀었던 원의 방정식 문제처럼 번외적으로 이번에 풀어볼 문제는 폴더의 파일 이름을 지정할 때 중복되는 이름 옆에 (1)과 같은 것을 구현하는 내용이다 예를 들자면 2022_파리 사진. png가 두 번 연속으로 저장이 시도된다면 나중에 등록되는 사진의 이름이 2022_파리 사진(1). png과 같이 되는 것을 말한다. 특별히 어려운 문제는 아니기에 사용을 할 때 딕셔너리를 이용해서 구현한 점과 이것을 문자열 변환을 이용하여 조금의 조합을 하여 구현하였다는 점 정도만 이야기하면 될 것으로 보이며 해당 문제에 대한 구현은 밑의 내용과 같다. - 생각해본 솔루션 def solution(input, file_name_save): if input not in file_name_save: file_name_sav..
![[ETC] 원의 방적식을 이용한 별찍기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdRp3uA%2FbtrMVdsi3Vu%2FAAAAAAAAAAAAAAAAAAAAAPSbzeoqQYo8kyiGonUSpVj4_w5L6S-yy_BNJoFFsfGa%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3D%252Bsl0qQaNhFUnDrXQO61pNkxY5%252Fs%253D)
[ETC] 원의 방적식을 이용한 별찍기
최근 접했던 문제 중에 원의 방정식을 이용한 문제가 있었다. 지인의 급한일을 주말동안 도와주는 상황에서도 계속 머릿속에 맴돌아서 어떻게 구현할지 고민하면서 쉴 때마다 메모장에 구현 방법을 생각해보았는데 결론적으로는 난이도가 쉬운 문제여서 뭔가 김빠지는 느낌이있었지만 그 내용을 남긴다. 처음에 구현을 할때 고려했던 것은 원의 방정식의 구성이었다. (x-a)^2 +(y-b)^2 = r^2 이 기준이고 기준점이 되는 a와 b의 개념이 있지만 모양을 만드는 것에만 집중해도 되었기 때문에 이 내용은 뺀다고 생각하여 x^2 +y^2 = r^2 을 사용하려고 생각하였다. 그리고 두 변수의 표현을 2중 for문을 이용하여 순회하면서 체크하면서 된다고 생각하였다. 그리고 2중 for문의 i 와 j를 각각 x와 y에 대입..