분류 전체보기

PS (Problem Solving)/Programmers

[프로그래머스] 이상한 문자 만들기 - 파이썬

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12930 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 문자열의 인덱스가 아니라 공백으로 구분되는 각 단어 기준 짝홀을 구분해야 한다. - 공백이 연속으로 오는 경우를 생각하여 홀짝을 잘 구분해야 한다. def solution(s): arr = list(s) index = 0 # 홀짝을 비교하는 index for i in range(len(arr)): if arr[i] == ' ': index = 0 # 공백일 경우 index 초기화 e..

PS (Problem Solving)/Baekjoon

[백준] 9342. 염색체 - 파이썬

문제 https://www.acmicpc.net/problem/9342 9342번: 염색체 상근이는 생명과학 연구소에서 염색체가 특정한 패턴인지를 확인하는 일을 하고 있다. 염색체는 알파벳 대문자 (A, B, C, ..., Z)로만 이루어진 문자열이다. 상근이는 각 염색체가 다음과 같은 규칙 www.acmicpc.net 설계 - 조건들을 순서대로 정의한다. - 첫번째 알파벳이 A, F, C가 아닌 경우 제거한다. N = int(input()) arr = [list(input()) for _ in range(N)] index = ['A', 'B', 'C', 'D', 'E', 'F'] condition = ['A', 'F', 'C'] for i in range(N): cnt = 0 # 규칙을 몇번 통과했는지..

PS (Problem Solving)/Programmers

[프로그래머스] 거리두기 확인하기 - 파이썬

문제 https://school.programmers.co.kr/learn/courses/30/lessons/81302#fn1 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 5개의 대기실, 5*5의 크기가 고정되어 있기 때문에 dfs로 접근했다. (bfs로 접근한 풀이도 많았다) - P를 만날경우 P를 기준으로 거리 2 안에 다른 P가 있는지 확인, 벽과 책상 조건도 확인한다. - 벽으로 막혀있는 X의 경우에는 dfs를 더 깊이 들어가지 않기위해 조건에서 제외했다. - 중간에 res를 넣어 dfs를 진행중인데 조건을 지키지 않은 경우에도 retu..

PS (Problem Solving)/Programmers

[프로그래머스] 혼자 놀기의 달인 - 파이썬

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 각 상자를 모두 묶음으로 분류한 후 묶음별 개수로 정렬한다. def solution(cards): visit = [0] * len(cards) cnt = 0 # 상자의 개수 box = [[]] for i in range(len(cards)): index = i while sum(visit) < len(cards): # 모든 상자를 분류 할때까지 확인 if visit[index] =..

PS (Problem Solving)/Programmers

[프로그래머스] 숫자 카드 나누기 - 파이썬

문제 https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 각 배열의 모든 숫자를 나눌 수 있는 가장 큰 수 = 최대 공약수 - 각 배열의 최대 공약수를 구한다 - 각 배열의 최대 공약수가 다른 배열을 나눌 수 없는지 검사 - 조건을 만족하는 최대 공약수 중 더 큰 값이 정답! # 2중 for문으로 구현했으나 시간초과로 통과하지 못했다. def cal(arrayA, arrayB): maxV = 0 for i in range(len(arra..

PS (Problem Solving)/Baekjoon

[백준] 6603. 로또

문제 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 설계 - 조합 라이브러리를 사용했다. # 로또 from itertools import combinations while 1: arr = list(map(int, input().split())) if arr == [0]: # 0이 나올 경우 종료 break N = arr[0] # 개수인 N 저장 후 빼내기 arr.pop(0) for i in combinations(arr, 6): p..

PS (Problem Solving)/Baekjoon

[백준] 10798. 세로읽기

문제 https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 설계 - 주어지는 단어는 5개이지만 각 단어의 길이는 다를 수 있다는 점을 주의하자 # 세로읽기 arr = [list(input()) for _ in range(5)] maxN = 0 for i in range(5): # 한줄에 최대 몇글자인지 확인 maxN = max(maxN, len(arr[i])) for i in range(5): # 비어있을 경우 빈칸 삽입 while len(a..

PS (Problem Solving)/Baekjoon

[백준] 1417. 국회의원 선거

문제 https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 설계 - heap을 음수로 변환하여 0번째 index와 비교한다. - heap 구조상 0번째 노드의 정렬은 언제나 보장되지만, 그 뒤는 정렬이 되어있지 않을 수 있기 때문이다. # 국회의원 선거 from heapq import heappop, heappush, heapify N = int(input()) heap = [int(input()) for _ in range(N)] vot..

PS (Problem Solving)/Programmers

[프로그래머스] 땅따먹기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 각 행의 최대값을 다음 행에 누적하여 더해준다. def solution(land): for i in range(1, len(land)): for j in range(4): land[i][j] += max(land[i - 1][:j] + land[i - 1][j + 1:]) # 이전열이 max값이라면 예외처리 return max(land[-1])

PS (Problem Solving)/Programmers

[프로그래머스] 피로도

문제 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 던전의 개수는 8개 이하로 가정하므로 dfs로 접근 def dfs(level, stamina, clear, dungeons, visit): global answer answer = max(clear, answer) if level == len(dungeons): return for i in range(len(dungeons)): if stamina >= dungeons[i][0] a..

캐럿노트
'분류 전체보기' 카테고리의 글 목록 (22 Page)