본문 바로가기

Algorithm

(2139)
(Python3) - 백준(BOJ) 1561 : 놀이 공원 https://www.acmicpc.net/problem/1561이분 탐색 문제였습니다.📕 풀이방법📔 입력 및 초기화탑승자 아이들의 수 child, 놀이기구 수 attractions, 각 놀이기구별 탐승시간 ride_times선언 후 입력 받습니다.📔 풀이과정무엇에 대해 이분탐색을 해야하는지 찾기가 쉽지 않았습니다. 처음 탑승할 아이의 수가 많기 때문에 그 숫자에 힌트를 얻어 아이에 대해 이분탐색을 진행했으나 각 놀이기구마다 탐승 가능한 아이의 수가 제각각 다르기 때문에 반대로 특정 시간(last_time)이 지났을 때 누적된 탑승자 수가 입력 받은 child값과 일치하는지 확인하는 방식으로 접근해야합니다. 1. 이분 탐색을 진행해줍니다.   1-1. left와 right변수를 설정해 시간을 이..
(Python3) - 프로그래머스(코딩 기초 트레이닝): 정수를 나선형으로 배치하기 https://school.programmers.co.kr/learn/courses/30/lessons/181832 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr구현 문제였습니다.📕 풀이방법📔 입력 및 초기화1. 우, 하, 좌, 상의 방향을 위해 dr, dc배열을 선언 후 적절히 초기화합니다. 2. 정답 변수 answer 선언 후 n*n의 2차원 배열을 선언합니다. 3. 값 val선언 후 1로 초기화합니다. 4. 시작행과 열 r, c선언 후 각각 0으로 초기화합니다. 5. 방향 direction을 선언 후 0으로 초기화합니다.📔 풀이과정n*n만큼의 for loop를 수행하며 다음을 진행합니다...
(Python3) - 백준(BOJ) 21758 : 꿀 따기 https://www.acmicpc.net/problem/21758누적합 문제였습니다.📕 풀이방법📔 입력 및 초기화전체 칸 수 n과 각 칸의 꿀 양 honey를 선언 후 입력받습니다.📔 풀이과정왼쪽부터 i까지 꿀을 채취했을 때 누적량을 계산해서 최댓값을 반환하는 함수 max_honey를 구현해줍니다.n이 10만이므로 단순 brute force로 두 마리의 벌과 벌통을 삼차원 for loop로 계산하면 시간초과입니다. 따라서 O(n)또는 O(nlogn)의 시간복잡도를 가진 알고리즘으로 해결해야 함을 알 수 있습니다. 벌통과 꿀벌의 배치를 보시면 3가지 경우가 있음을 알 수 있습니다.1. 가장 왼쪽에 벌통이 있는경우마지막 위치에 꿀벌 한 마리가 있는 것이 가장 많은 꿀을 채취할 수 있습니다. 2. 가..
(Python3) - 프로그래머스(PCCE 기출문제): 2번 피타고라스의 정리 https://school.programmers.co.kr/learn/courses/30/lessons/250132 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr간단 디버깅 문제였습니다.📕 풀이방법📔 풀이과정${a^2 + b^2 = c^2}$이므로c**2 - a**2값으로 ${b^2}$를 구할 수 있습니다.📕 Code📔 Python3a = int(input())c = int(input())b_square = c**2 - a**2print(b_square)*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
(Python3) - 프로그래머스(PCCP 기출문제): 1번 / 분대 감기 https://school.programmers.co.kr/learn/courses/30/lessons/250137 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr구현 문제였습니다.📕 풀이방법📔 입력 및 초기화1. 최대 체력 health_limit을 선언 후 health 값으로 갱신해줍니다. 2. 붕대 감는(치료)시간 cure_time, 초당 회복량 cure_amount_per_sec, 치료시간만큼 치료 성공시 얻는 추가 회복량 bonus_cure를 선언 후 bandage에서 값을 가져와 저장합니다.📔 풀이과정공격 정보 attacks에 대해 for loop를 수행하며 다음을 진행합니다. 1. 현..
(Python3) - 프로그래머스(연습문제): 대충 만든 자판 https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krhash map을 이용한 구현 문제였습니다.📕 풀이방법📔 입력 및 초기화1. 정답 변수 answer선언 후 빈 배열로 초기화합니다. 2. 문자, 누르는 최소 횟수를 각각 key, value로 저장할 hash_map변수 char_press_map을 선언 후 빈 객체로 초기화합니다.📔 풀이과정1. 'A'부터 'Z'까지 순회하며 원소별 최소 클릭 횟수 구해줍니다. 해당값은 keymap에서 현 알파뱃에 해당하는 index값의 최솟값을 저장하면..
(Python3) - 프로그래머스(연습문제): 바탕화면 정리 https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr전수조사 문제였습니다.📕 풀이방법📔 입력 및 초기화1. answer 선언 후 빈 배열로 초기화합니다. 2. lux, luy, rdx, rdy 선언 후 각각 int max값, int max 값, 0, 0으로 초기화합니다.📔 풀이과정wallpaper에 대해 2차원 for loop를 수행하며 다음을 진행합니다.1. i행 j열에 아이콘이 있다면 lux, luy에는 각각 i행 최솟값, j열 최솟값을 저장해주고 rdx, rdy에는 각각 i+1행 최댓..
(Python3) - 프로그래머스(연습문제): 공원 산책 https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr구현 문제였습니다.📕 풀이방법📔 입력 및 초기화1. 정답 배열 answer 선언 후 빈 배열로 초기화합니다. 2. 높이 h, 너비 w선언 후 적절히 초기화합니다. 3. 시작좌표 start_h, start_w를 선언 후 적절히 초기화합니다. 4. hash map변수 dh, dw를 선언 후 방향에 따른 좌표값을 key, value로 저장합니다.📔 풀이과정routes에 대해 for loop를 수행하면서 다음을 진행합니다.1. 지역변수 rou..