본문 바로가기

파이썬127

[Python] 프로그래머스 : 기지국 설치 https://school.programmers.co.kr/learn/courses/30/lessons/12979 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 DP 관련 문제이다. 기지국의 최대 전파 범위는 도달 거리의 × 2 + 1 만큼이다. 기지국을 기준으로 좌우로 범위가 나뉘는데 시작 지점부터 기지국 왼쪽 도달 범위까지 거리에서 최대 전파 범위를 나눠서 올림 처리해주면 필요한 최소 개수를 셀 수 있다. 이 방법은 단순히 최소 개수만 구해주면되기 때문에 가능하다. ✔️ 느낀 점 이런 류의 문제가 너무나도 약해서 다른 문제들도 많이 풀어.. 2022. 10. 9.
[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.