본문 바로가기

코테 공부 🔥71

[백준/파이썬] 1463 : 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 요약 : 3으로 나누어 떨어지면 3으로 나눈다. 2로 나누어 떨어지면 2로 나눈다. 1을 뺀다. 이 세가지 연산을 사용하여 정수X(1이상 10^6이하)를 1로 만드는 최소한의 횟수 풀이 ) 1000000 이하면 dp를 1000001개 만들어줘야하는데 그대로 1000000개만 만들어서 IndexError가 떴었다. 실수를 줄이자.. 문제에서 주어진 힌트를 보면 10의 경우10 → 9 → 3 → 1 로 3번 만에 만들 수 있다. dp와 min을 통해 풀 수 있는 문제 dp = [0 for _ in range(.. 2023. 2. 27.
[백준/파이썬] 9205 : 맥주마시면서 걸어가기 https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 문제 요약 : 상근이와 친구들은 락 페스티벌에 가려고 한다. 출발 할때 맥주 한박스(20병)를 들고 가서 50미터에 한 병씩 마시려고한다. 페스티벌을 가는 길에 맥주가 떨어질 수도 있느니 편의점에서 들러 맥주를 구매하여야한다. 상근이와 친구들이 행복하게 페스티벌에 도착할 수 있으면 "happy"를, 아니면 "sad"를 출력한다. bfs, dfs 문제를 안 푼지 좀 된것같아 감 잡을 겸 복습을.. 2023. 2. 27.
[알고리즘/Python] 이진 탐색(Binary Search) 너무 편향된 알고리즘 문제만 푼 나를 반성하며 이진 탐색에 대하여 정리해보려고 한다. 1. 이진 탐색이란? 검색 범위를 줄여나가며 특정 데이터를 검색하는 알고리즘 정렬된 정수의 리스트를 같은 크기의 두 부분 리스트로 나누고 필요한 부분에서만 탐색하도록 제한하여 원하는 원소를 찾는 알고리즘이다. 리스트 중간 부분에 찾는 원소가 있는지 확인하고, 없으면 위쪽에 있는지 아래쪽에 있는지 판단하여 맨 앞부터 검색하거나 중간부터 검색한다. 2. 동작 방식 배열의 중간 값을 가져온다. 중간 값과 검색 값을 비교한다. 중간 값이 검색 값과 같으면 종료 (mid = key) 중간 값이 검색 값보다 크다면 중간 값 기준 오른쪽 구간을 대상으로 탐색 (mid < key) 중간 값이 검색 값보다 작으면 중간 값 기준 왼쪽 구.. 2023. 1. 28.
[프로그래머스/파이썬] 디펜스 게임 https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 요약 : 준호는 디펜스 게임을 진행한다. 병사는 n명 가지고 있고, 적을 마주할 때 마다 적의 수만큼 아군의 수도 줄어든다. 단, '무적권'이라는 스킬을 사용할 시 병사의 소모없이 한 라운드의 공격을 막을 수 있다. 무적권을 적절히 사용하여 준호가 몇 라운드까지 버틸 수 있는지 출력하라. level 2문제길래 가볍게 접근했다가 애를 먹었다. 이진 탐색 + 파라메트릭 서치 + 힙 문제는 사실.. 2023. 1. 27.
[Python] 파이썬 딕셔너리 값 정렬 (key, value) 딕셔너리를 자주 사용하지 않아서 그런지, 한번 사용할 때마다 방법이 가물가물했다. 블로그에 딱 정리해두고 내 머리에도 정리해두자! 👶 dict_ex = { 'b':5, 'c':4, 'B':1, 'a': 2 } 1. key를 기준으로 오름차순 정렬 딕셔너리에 .item() 을 해주면, 각 key, value가 들어있는 tuple 리스트로 변한다. dict_ex = { 'b':5, 'c':4, 'B':1, 'a': 2 } print(dict_ex.items()) sorted()에 인자로 위에서 구한 튜플(dict_ex.items())을 전달하여 주면 오름차순으로 정렬된다. sorted_dict = sorted(dict_ex.items()) print(sorted_dict) 참고로 items를 이용하지 않고,.. 2023. 1. 24.