본문 바로가기

코딩테스트34

[백준] 파이썬 python - 2841번 : 외계인의 기타 연주 https://www.acmicpc.net/problem/2841 2841번: 외계인의 기타 연주 첫째 줄에 멜로디에 포함되어 있는 음의 수 N과 한 줄에 있는 프렛의 수 P가 주어진다. (1 ≤ N ≤ 500,000, 2 ≤ P ≤ 300,000) 다음 N개 줄에는 멜로디의 한 음을 나타내는 두 정수가 주어진다. 첫 번째 www.acmicpc.net 2841번: 외계인의 기타 연주 레벨 실버 1 접근 방식 1. 총 6개의 줄이므로, 각각에 해당하는 스택을 미리 만든다. 2. line에 해당하는 스택이 존재하며, top에 있는 프렛이 현재 누를 프렛보다 높다면 해당 프렛 삭제 (손 떼어내기) 3. 이미 해당 프렛을 누르고 있다면, continue 4. 현 프렛을 stack에 추가 (누르기) 내 코드 n,.. 2023. 12. 4.
[프로그래머스] python 파이썬 - 스킬트리 https://school.programmers.co.kr/learn/courses/30/lessons/49993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Level 2. 스킬트리 Summer/Winter Coding(~2018) 접근 방식 1. 입력된 스킬을 순서대로 숫자로 치환한다. 2. 치환한 숫자를 제외한 모든 문자를 정규식을 사용하여 삭제한다. 3. skill_trees 배열을 돌면서, 숫자가 순서대로인지 확인한다. 3-1. 길이가 0일 때(선행 스킬이 존재하지 않는 스킬)에는 넘어간다. 3-2. 길이가 1일 때에는 무조건 가장 먼저 선행되.. 2023. 12. 2.
[프로그래머스] 파이썬 python - 방문 길이 https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Level 2. 방문 길이 Summer/Winter Coding(~2018) 접근 방식 1. dirs을 돌면서, 방문 경로를 차례대로 저장한다. 이때, 유효한 좌표평면인지 확인한다. 나의 경우에는 가장 최근의 좌표를 알기 위해 stack을 사용하였다. 2. 그 후 스택을 다시 반복하면서 해당 경로에 온적 있는지 확인한다. 이 경우에는 중복을 확인하기 위해 set을 사용하였으며, 중요한 점(!!!).. 2023. 11. 24.
[프로그래머스] 파이썬 python - 튜플 https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Level 2. 튜플 2019 카카오 개발자 겨울 인턴십 문제 접근 1. 문자열을 확인하면서, 괄호 또는 반점(',')을 삭제하고 집합을 리스트로 재생성한다. (이 부분이 포인트인듯..) 2. 리스트(real)를 돌면서 answer 리스트에 존재하지 않는 숫자가 있다면 차례대로 저장한다. 코드 import re def solution(s): answer = [] #일단 해당 문자열로 spilt하여.. 2023. 11. 24.
[백준] 파이썬 15666번 : N과 M (12) https://www.acmicpc.net/problem/15666 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 백준 15666번: N과 M (12) 파이썬 풀이 n, m = map(int, input().split()) num = list(map(int, input().split())) set_num = list(set(num)) # set를 적용하여 중복 제거 set_num.sort() dict = [] def backtracking(idx): global dict if len(dict) == m :.. 2023. 11. 14.
[백준] python 파이썬 - 9455번 : 박스 https://www.acmicpc.net/problem/9455 9455번: 박스 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 m과 n이 주어진다. (1 ≤ m, n ≤ 100) 다음 m개 줄에는 그리드의 각 행의 정보를 나타내는 n개의 정수가 주어진다. 그 www.acmicpc.net 9455번 : 박스 접근 방식 1. 공백을 기준으로 split하여 list로 저장한다. 2. 가장 밑의 행부터 거슬러 올라오면서, 밑바닥과 박스 사이의 거리를 계산한다. 3. 2번을 열이 끝날 때까지 반복하면서 거리 계산한 값을 합산한다. 코드 for _ in range(int(input())): m, n = map(int ,input().split()) graph = [list(ma.. 2023. 11. 12.