본문 바로가기
728x90

알고리즘141

[SWEA/Python] 2383. 점심 식사시간 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 처음엔 dp로 풀어야하나 싶어서 아이디어를 짜는 데, 도저히 떠오르지 않았다. 결국 아이디어를 얻으려고 구글링을 해보니 완전탐색이 가능하다길래 완전탐색으로 풀기로 결정! 입력받은 2차원 배열에서 사람의 위치와 계단의 위치를 찾아서 각각 people과 stairs에 저장해줬다. people은 조합을 이용해서 두 그룹으로 나누었고 첫 번째 그룹과 첫 번째 계단, 두 번째 그룹과 두 번쨰 계단을 각각 go_for_lunch 함수에 넣고 실행해서 둘 중 더 큰 시간을 해.. 2021. 12. 7.
[BOJ/Python] 14888. 연산자 끼워넣기 📌 문제 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 📌 문제 접근 방법 연산자를 입력된 개수만큼 리스트에 넣은 후 순열을 만들어줬다. 똑같은 연산자가 2번 이상 들어갈 경우, 중복될 수 있으므로 set을 사용해서 중복을 제거해줬다. 숫자와 연산자를 순회하면서 앞에서부터 계산한 값을 results에 append 해줬다. results에서 최대값과 최소값을 출력했다. 📌 코드 from i.. 2021. 12. 2.
[PG/Python] 큰 수 만들기 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 📌 문제 접근 방법 처음엔 숫자의 길이에서 k만큼을 빼서 필요한 만큼 숫자를 뽑아내는 방식으로 코드를 짰다. 8, 10번에서 시간초과가 나서 슬라이싱을 deque의 popleft로 바꿔봤는데도 시간초과가 났다. 결국 해결하지 못하고 구글링...😅 스택을 활용한 방법으로 바꿨다! 스택에 숫자를 하나씩 넣고 만약 push하려는 숫자가 스택의 마지막 숫자보다 작다면 스택의 마지막 숫자가 크거나 같아질 때까지 pop을 한다. 반복문이 끝나고 원하는 길이만큼 스택을 슬라이싱해서 answer에 저장한다. 📌 코드 from collection.. 2021. 12. 2.
[PG/Python] 멀쩡한 사각형 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 📌 문제 접근 방법 한참 고민하다가 함수 그래프를 그려서 풀어볼까?라는 접근까지는 왔는데 도저히 아이디어가 생각이 안나서 결국 구글링을 했다. ▼ 참고한 풀이 ▼ https://leedakyeong.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4.. 2021. 12. 1.
728x90