Algorithm 24

[BOJ] 2504번 괄호의 값 - Python

문제 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X www.acmicpc.net 풀이 이전 상태를 복원해줄 수 있는 아이디어를 사용하여 풀이했습니다. 여는 괄호를 만나면 temp값에 *n, 닫는 괄호를 만나면 temp값에 //n 을 해줍니다. 나누는 과정은 이전 값이 여는 괄호일 때만, 즉 중복되어 나누지 않도록 처리합니다. def solution(input_s): d = {'(': 2, '[': 3, ')': 2, ']': 3} if not is_valid_form(input_s, d): return 0 # ✔️이전 상태 복원의..

Algorithm 2023.07.14

[BOJ] 5427번 불 - python

문제 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net 작성한 풀이 불과 상근이는 각각 독립적인 이동 규칙을 가지기 때문에, 불의 위치를 탐색하는 큐와 상근이의 위치를 탐색하는 큐를 따로 관리해 주었다. 또한 불의 정보에 따라 상근이의 이동이 제한될 수 있기 때문에, 불의 위치에 해당하는 탐색을 먼저 진행해주었다. from collections import deque def solution(boards, row_col, test_case): WALL = '#' START = '@' FIRE = '*' IMPOSSIBLE =..

Algorithm 2023.07.10

[BOJ] 2573번 빙산 - python

문제 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 풀이 from collections import deque def solution(board, n, m): year = 0 while get_num_pieces(board, n, m) < 2: board = get_melted_board(board, n, m) year += 1 if is_failed(board, n, m): return 0 return year def is_failed(board, n, m): for i in range(n): for..

Algorithm 2023.07.10

[leetcode] 200. number of Islands

🌵 문제 Number of Islands - LeetCode Can you solve this real interview question? Number of Islands - Given an m x n 2D binary grid grid which represents a map of '1's (land) and '0's (water), return the number of islands. An island is surrounded by water and is formed by connecting adjacent l leetcode.com 🚀 풀이 배열을 도는데 만약 육지가 아니라면 해당하는 지점에서의 탐색을 시작하지 않고, 육지라면 탐색을 시작하여 연결된 육지를 감지, DFS가 끝난 후에 섬의 개수를 하..

Algorithm 2023.05.31

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

2022 KAKAO BLIND RECRUITMENT - Lv2. 🌵 문제 https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀 풀이 input으로 들어오는 친구들의 크기를 보고 브루트 포스로 탐색했습니다. 라이언이 쏠 수 있는 화살의 경우의 수를 담은 중복조합을 모두 구하고, 이를 토대로 어피치의 화살 경우의 수와 대조해 각각의 점수를 구합니다. 각각 점수를 구하고 어치피와 라이언의 점수를 비교, 더 큰 점수 차가 날 때마다 전역변수 score_..

Algorithm 2023.03.06

[프로그래머스] 파괴되지 않은 건물 (2022 KAKAO BLIND RECRUITMENT) - Python

2022 KAKAO BLIND RECRUITMENT - Lv3. 🌵 문제 https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀 풀이 시간복잡도를 살펴보니 O(K * N * M)까지 뛰어서 브루트 포스는 아닐 거라 생각했고, 실제로 완전탐색으로 살펴보면 그리 어려운 문제는 아니라 매트릭스에서 반복되는 부분을 하나로 처리할 수 있는 방법은 없을까 고민을 했습니다. 그래서 파스칼 삼각형의 하키스틱 같이 전체 합으로 처리할 수 있는 방법은 없을까와 같은..

Algorithm 2023.03.06

[프로그래머스] 택배 배달과 수거하기 (2023 KAKAO BLIND RECRUITMENT) - Python

2023 KAKAO BLIND RECRUITMENT - Lv2. 🌵 문제 https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀 풀이 처음에는 O(N^2) 정도의 풀이밖에 생각이 안났는데, input인 n 범위 보니까 각이 안나오더라고요.. 그래서 좀 결이 다르긴 하지만 아래 구명보트 문제 푼 것처럼 조건에 만족하는 친구, task가 다 해결된 친구를 하나씩 보내주는 (신경꺼주는) 그리디한 방식은 어떨까 생각했습니다. [프로그래머스] 구명보트 -..

Algorithm 2023.02.24

[프로그래머스] 숫자 문자열과 영단어 (카카오 채용연계형 인턴십) - Python

2021 카카오 채용 연계형 인턴십 - Lv1. 🌵 문제 https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀 풀이 코드는 간단한데, 대치될 수 있는 숫자와 숫자에 해당하는 문자열을 딕셔너리에 넣고 key, value 값으로 관리했습니다. 💡 풀이 코드는 아래와 같습니다. def solution(s): en = { 0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five', 6: 'six',..

Algorithm 2023.02.23

[프로그래머스] 성격 유형 검사하기 (KAKAO TECH INTERNSHIP) - Python

2022 KAKAO TECH INTERNSHIP - Lv1. 🌵 문제 https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀 풀이 choice에 따라 각 유형별 점수가 정의되어 있으니 해시 테이블을 사용하면 빨리 찾을 수 있을 거라 생각했습니다. 선택된 점수에 따라 유형별 점수를 얻어주는 함수 (getTypeScore), 같은 영역에서의 라이벌 문자의 총점이 서로 같으면 사전 순으로 더 작은 문자를 선택하라고 되어있으니 이를 위한 함수 (getS..

Algorithm 2023.02.23

[프로그래머스] 실패율 (KAKAO BLIND RECRUITMENT) - Python

2019 KAKAO BLIND RECRUITMENT - Lv1. 🌵 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀 풀이 문제를 분석하면 다음과 같습니다. N: 전체 스테이지의 개수 stages: 게임을 이용하는 사용자의, 현재 멈춰있는 스테이지 번호가 담긴 배열 stages의 길이: 유저 수 실패율의 분모: 처리 안된 (남은) 유저 수 실패율의 분자: 현재 체크하고 있는 stage의 수 💡 첫 번째 작성한 풀이 코드는 아래와 같습니다..

Algorithm 2023.02.23
728x90