본문 바로가기

python125

[Python] 프로그래머스 : [3차] 압축 https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 일반적인 구현 문제이다. 문제를 두 파트로 나누어 풀었다. dict에 있으면 정답에 append 하는 파트, dict에 없으면 dict에 append 하는 파트' 정답에 append 하는 파트에서는 현재 dict에 있는 최대 길이부터 문자열을 확인하고 해당 문자열이 있으면 정답 리스트에 담아준다. dict에 append 하는 파트에서는 리스트에 담아준 문자열을 가져와서 다음 문자열을.. 2022. 10. 6.
[Python] 프로그래머스 : [1차] 셔틀 버스 https://school.programmers.co.kr/learn/courses/30/lessons/17678 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 구현 문제이다. 조심해서 구현만 할 수 있으면 된다. 시간에 대한 처리를 위해서 "hour : minute"으로 나오는 시간을 분으로 바꿔주는 함수를 만들어 사용한다. 중요한 핵심은 다음과 같다. 마지막 버스에 탄 인원이 m명과 같다면 마지막에 온 사람보다 1분 빨리 오면 되고, 마지막 버스에 탄 인원이 m명과 다르다면 그냥 버스 막차시간에 맞춰서 오면 된다. 내 코드의 경우는 처음.. 2022. 10. 3.
[Python] 프로그래머스 : 다단계 칫솔 판매 https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 기본적인 구현 문제이다. 설명은 엄청나게 되어있지만 결국 트리구조를 고려해서 구현하면 된다. seller의 길이가 10만이라서 일직선의 트리구조가 되는 최악의 경우를 따지면 시간이 부족할 수도 있다. 근데 문제에서 최대로 벌 수 있는 이윤은 10,000원이고 이윤의 10%를 상납해야 하는 구조라서 최대로 5번의 반복을 넘어가지 않는다. 따라서 그냥 구현해주면 된다. ✔️ 느낀 점 처.. 2022. 9. 29.
[Python] 백준 9944번 : NxM 보드 완주하기 https://www.acmicpc.net/problem/9944 9944번: NxM 보드 완주하기 N×M 보드 위에서 할 수 있는 게임이 있다. 보드는 크기가 1×1인 정사각형 칸으로 나누어져 있다. 보드의 각 칸은 빈 칸 또는 장애물이다. 장애물은 아래 그림에선 어두운 사각형으로 표시되어져 www.acmicpc.net 💡 문제 풀이 간단한 구현 문제이다. 백트래킹을 곁들인. 백트래킹을 하면서 매번 2차원 배열을 복사하면 메모리가 너무 커지기 때문에 방문했던 좌표들을 처리하는 리스트를 새로 만들었다. ✔️ 느낀 점 어렵지 않은 구현 문제였다. 이전에 예외처리를 하는 문제를 풀어봐서 괜찮았다. 💻 코드 import sys input = sys.stdin.readline MAX = 1000001 ans, .. 2022. 9. 18.
[Python] 백준 14572번 : 스터디 그룹 https://www.acmicpc.net/problem/14572 14572번: 스터디 그룹 첫 줄에 학생의 수 N, 알고리즘의 수 K, 문제에 설명한 D가 주어진다. (1 ≤ N ≤ 105, 1 ≤ K ≤ 30, 0 ≤ D ≤ 109) 이어 N명의 학생에 대한 정보가 아래와 같이 주어진다. M d (0 ≤ M ≤ K, 0 ≤ d ≤ 109): 해 www.acmicpc.net 💡 문제 풀이 투 포인터 알고리즘 문제이다. 투 포인터 알고리즘 중 누적합과 비슷한 알고리즘을 한 단계 더 올려서 해결하면 되는 문제이다. E를 계산하는 식을 보면 다음과 같다. E = (아는 모든 알고리즘(anyknows) - 모두 아는 알고리즘(allknows)) × 그룹원 수 결정적으로 값을 크게 만드는 것은 그룹원의 수이기.. 2022. 9. 7.
[Python] 백준 1774번 : 우주신과의 교감 https://www.acmicpc.net/problem/1774 1774번: 우주신과의 교감 (1,1) (3,1) (2,3) (4,3) 이렇게 우주신들과 황선자씨의 좌표가 주어졌고 1번하고 4번이 연결되어 있다. 그렇다면 1번하고 2번을 잇는 통로를 만들고 3번하고 4번을 잇는 통로를 만들면 신들과 선자씨끼 www.acmicpc.net 💡 문제 풀이 최소 신장 트리 문제이다. 크루스칼 알고리즘으로 해결했다. 이 문제는 특이하게 각 정점에 대한 좌표가 주어지고 이미 연결된 간선의 정보를 준다. 우선 입력받는 순서가 정점의 순서이기 때문에 각 좌표를 저장한 이후에 간선의 정보를 만들어준다. 크루스칼 알고리즘이 (정점 개수 - 1)개 일 때 종료되니 이미 연결된 edge의 정보를 받을 때 세준다. ✔️ 느낀.. 2022. 9. 4.