본문 바로가기

알고리즘66

[프로그래머스] 행렬의 곱셈 문제https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  주요 아이디어행렬을 전치하는 것이 이번 문제의 핵심이다.numpy 라이브러리를 사용하면 메서드를 통해 굉장히 쉽게 전치가 가능하지만.. 순정 파이썬으로도 리스트 전치를 쉽게 할 수 있는 방법에 대해 숙지하과 가자.arr_T = list(map(list, zip(*arr)))  코드 구현 (Python 3)더보기 def solution(arr1, arr2): answer = [] # .. 2024. 5. 21.
[프로그래머스] 징검다리 건너기 문제https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr    주요 아이디어최대 몇 명까지 징검다리를 건널 수 있는지 return해야 하는 이분탐색 문제이다."최대로 건널 수 있는 명 수"를 이분탐색 타깃으로 둔다건널 수 있는지, 없는지를 판별건널 수 있으면 인원을 증가건널 수 없으면 인원을 감소  코드 구현 (Python 3)더보기 def can_check(bridge, people, k): # 0 이하 구간이 연속되는 최대 횟수 cnt =.. 2024. 5. 21.
[BOJ] 1806. 부분합 문제https://www.acmicpc.net/problem/1806    주요 아이디어처음에는 혹시 될까 해서 그냥 풀어보았다.말 그대로 하나씩 잘라보면서 최소값을 갱신하는 방식... 코드 구현 (Python 3)더보기 # 길이 N, 합 Sn, s = map(int, input().split())# 수열numbers = list(map(int, input().split()))total = 0min_len = 10**8 + 1 # s 최대값# 벌써 O(n^2) 나오죠for i in range(len(numbers)): for j in range(i, len(numbers)): arr = numbers[i:j] if sum(arr) >= s: if min_.. 2024. 5. 21.
[프로그래머스] 문자열 다루기 기본 문제https://school.programmers.co.kr/learn/courses/30/lessons/12918 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   주요 아이디어간단하게 조건문만 구성하면 되는 문제!isdigit() 메서드를 활용하자  코드 구현 (Python 3)더보기 def solution(s): if len(s) == 4 or len(s) == 6: if s.isdigit() == True: return True return False  제출 결과 2024. 5. 21.
[프로그래머스] 가장 먼 노드 문제https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr    주요 아이디어1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return하는 문제이다.BFS를 통해 인접 노드를 탐색distance 배열을 통해서 노드 1과의 거리가 얼마인지를 저장이 때 시작점은 1번 노드 고정이므로 1차원 배열로 커버 가능하다  코드 구현 (Python 3)더보기 from collections import dequedef solution(n, edge): gra.. 2024. 5. 21.
[BOJ] 9466. 텀 프로젝트 문제https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을www.acmicpc.net  주요 아이디어처음에는 BFS 방식으로 접근하고자 했다.1. BFS를 수행해 그래프가 완성되는지 판단2. 그래프가 완성될 경우 그래프에 속한 노드를 반환 / 아닐 경우 None을 반환3. 시작 노드 순차적으로 순회하며 BFS를 수행하고, 그래프가 만들어진 노드들의 개수를 제하면 그래프가 완성되지 않은 노드들의 개수만 남게 됨  코드 구현 (Python 3)더보기.. 2024. 4. 24.