완전탐색

    [python] 프로그래머스 Lv1 - 카드 뭉치

    [python] 프로그래머스 Lv1 - 카드 뭉치

    🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📁 분류 스택 완전탐색 💡풀이 이 문제는 cards1와 cards2를 사용하여 goal에 있는 문자 순서대로 매칭하는 문제이다. goal을 순회하면서 goal[i]와 각 카드의 첫 번째 요소와 일치한다면, 해당 값을 answer에 추가하고 제거한다. goal 리스트의 순서대로 카드를 뽑아오고, goal을 만족하는지 여부를 검사하여 결과를 반환한다. 💻 코드 def solution(cards1, cards2, goal): answer = [] for i in range(len(goal)): if ..

    [python] 프로그래머스 Lv1 - 공원 산책

    [python] 프로그래머스 Lv1 - 공원 산책

    🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📁 분류 자료구조 완전탐색 💡풀이 start point를 찾아서 route의 방향대로 장애물이 없고, len을 벗어나지 않는다면 이동시켜 최종 이동한 좌표를 구하는 문제이다. 문제는 매우 심플했는데 코드의 길이가 너무 길어서 다른 사람의 풀이를 보았더니 for-else문과 dictionary를 이용한 풀이도 있었다. 언어는 배우기 정말 쉬우나 그 언어답게 쓰는건 어려운 것 같다. 💻 코드 # 내 풀이 def get_start_point(park): for i in range(len(park)):..

    [Python] 프로그래머스 Lv2 - 숫자의 표현

    [Python] 프로그래머스 Lv2 - 숫자의 표현

    🔗 문제링크 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 📂 분류 완전탐색 💡 풀이 n이 10,000이하인 수 이기 때문에 완전탐색으로 풀었다. 반복문으로도 해결할 수 있는 문제이지만, 재귀의 약한 것 같아 재귀함수를 사용해서 풀었다. 💻 코드 def recursion(n, i, num): if n == num: return True if n > num: return False n += i return recursion(n, i + 1, num) def solution(n): answe..

    [Python] 프로그래머스 Lv2 - 양궁대회 (2022 KAKAO BLIND RECRUITMENT)

    [Python] 프로그래머스 Lv2 - 양궁대회 (2022 KAKAO BLIND RECRUITMENT)

    🔗 문제링크 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr 📂 분류 백트래킹 완전탐색 💡 풀이 친구가 파이썬으로 알고리즘 문제 푸는 것을 보고 파이썬이 편해 보이길래 파이썬으로 풀어보았다. 이 문제는 n의 크기가 10 이하 이므로 백트래킹 + 완전탐색으로 해결할 수 있는 문제이다. 접근 방식 라이언이 점수를 획득할지의 여부를 체크하면서 재귀 함수를 진행한다. 라이언의 최대 점수를 경신하면서 answer에 과녁 점수를 넣어준다. 가장 낮은 점수를 더 많인 경우를 반환해야 하기 때문에 낮은 점수를 기준으로 정렬을 해..

    [JAVA 풀이] 프로그래머스 - 전력망을 둘로 나누기 (Level 2)

    [JAVA 풀이] 프로그래머스 - 전력망을 둘로 나누기 (Level 2)

    코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 📝 문제 설명 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 r..

    [자바] 프로그래머스 - 카펫 (Level 2)

    [자바] 프로그래머스 - 카펫 (Level 2)

    🔗 문제 링크 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 📝 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 re..