Algorithm (2087) 썸네일형 리스트형 (Python3) - 프로그래머스(연습문제): 귤 고르기 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr정렬 문제였습니다.📕 풀이방법📔 입력 및 초기화1. 정답 변수를 선언 하고 0으로 초기화합니다. 2. 귤 크기와 개수를 저장할 tangerine_map을 선언 후 적절히 초기화합니다. 3. 귤의 개수에 대해 내림차순으로 정렬해줍니다.* k이상 개수만큼 담기만하면 되므로 최소의 종류로 담기 위해서는 해당 정렬이 필요합니다.📔 풀이과정여태 담은 귤의 개수 sum을 선언 후 0으로 초기화합니다. tangerine_map의 원소에 대해 순회하며 .. (C++, Python3) - 백준(BOJ) : 벽 부수고 이동하기 2 https://www.acmicpc.net/problem/14442bfs 문제였습니다.📕 풀이방법📔 입력 및 초기화1. n행 m열 부술 수 있는 벽 k를 입력받습니다. 2. 2차원 map_input에 지도를 입력받습니다.📔 풀이과정bfs함수를 수행하며 다음을 진행합니다. 1. i행 j열에 방문해 부순 벽의 개수 k개를 검사하기 위해 queue를 선언 후 행,열,부순 벽의 개수를 tuple형태로 push해줍니다.* python의 경우 일반적인 배열로 queue처럼 사용하면 pop때마다 O(n)이 소요되므로 deque를 사용해줍니다. 2. i행 j열에 k개의 벽을 부쉈을 때 최단경로 check배열을 3차원으로 선언 후 각 원소를 0으로 저장합니다. 2. 인접 4방향에 대해 loop를 수행하며 다음을.. (Java, Python3) - 프로그래머스(연습문제): 크기가 작은 부분문자열 https://school.programmers.co.kr/learn/courses/30/lessons/147355?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문자열을 다뤄보는 문제였습니다.📕 풀이방법📔 입력 및 초기화1. 정답 변수 answer 선언 후 0으로 초기화합니다. 2. p의 길이를 선언 후 해당 값을 저장합니다.📔 풀이과정p길이만큼 자르기 위해 0부터 t의 길이 - p의 길이까지 for loop를 수행하며 다음을 진행합니다.1. 자른 부분 문자열을 저장해주고 p보다 작다면 answer를 1증가시켜줍니다. 파이썬의 경우 문자열,정수 비교를 모두 📔.. (Python3) - 프로그래머스(연습문제): 카드 뭉치 https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr구현 문제였습니다.📕 풀이방법📔 입력 및 초기화cards1의 index idx1, cards2의 index idx2를 선언 후 0, 0으로 각각 초기화합니다.📔 풀이과정goal의 원소를 순회하며 다음을 진행합니다.1. cards1의 idx1번째 원소가 현재 goal의 문자열과 같다면 바로 뽑아주고 idx1을 1증가시킵니다.2. 이외에 cards2의 idx2번째 원소가 같다면 idx2를 증가시킵니다.3. 1,2번 경우 모두 아니라면 뽑을.. (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)*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다. 이전 1 2 3 4 5 ··· 261 다음