일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 스마트팩토리
- re_lunchu
- JavaScript
- 프로그래머스
- 현대
- 힙큐
- 현대자동차
- Algorithm
- 딥러닝
- GAN
- Baekjoon
- 파이썬
- 탐욕법
- 백준
- 소프티어
- 자바
- cim
- heapq
- softeer
- 알고리즘
- Python
- cs공부
- 자바스크립트
- 그리디
- Java
- alogorithm
- programmers
- 토이프로젝트
- MES
- 비전공자
- Today
- Total
목록알고리즘 (75)
eaz_coding
문제요약n*n크기의 땅에서 m명의 친구들이 3초의 시간동안 농작물을 수확할때 수확할 수 있는 최대 농작물의 수는?친구들이 서있는 위치의 농작물은 0초에 수확한다.친구들 간에 도중에 만날 수는 있지만 한명만 수확한 것으로 친다. 원본https://softeer.ai/practice/7727 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 풀이풀이1(오답) 일단 접근 방식이 맞았다는 사실에 나자신 칭찬해 ㅠㅜㅠ 새로 알게 된 것 첫번째는 permutations으로 친구들의 순서를 바꿔줘야 한다는 점한친구가 먼저 최대 수확량인 곳으로 움직이면 다른 친구가 그것보다 더 많이 먹을 수 있지 않나? 라고 생각만 하고그럼 이걸 어떻게 확인하지? 싶었는데친구들의 수가 최대 세명이기 때문에 perm..
문제 요약 길이가 length인 다리가 최대 weight 무게를 견딜 수 있을 때, truck_weights의 트럭들이 모두 다리를 건너려면 얼마나 걸리는가 풀이 풀이1(오답) 첫번째 풀이의 접근 자체는 나쁘지 않았던 것 같다. 현재 다리 위의 트럭들의 무게와 새로 들어오는 트럭의 합이 기준보다 초과일때, 제일 앞에 있는 트럭이 다리를 다 지날 때까지는 진입을 못한다. 마지막 트럭이 다리 위에 올라오고 나서는 다리 길이만큼 시간이 더 걸리기 때문에 마지막에 다리길이를 한번더 더해준다. 이 풀이는 다리 중간 쯤까지 차가 이동해 있었을 경우를 파악하지 못한다. from collections import deque def solution(bridge_length, weight, truck_weights): a..
문제 요약 바깥에서부터 유입되는 공기와 두면이 맞닿아 있는 얼음이 녹는데 1초가 걸릴 때, 얼음이 다 녹을 때까지 시간이 얼마나 걸리는가? 원본 https://softeer.ai/practice/6281 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 풀이 바깥에서부터 유입되는 얼음과 2면이 맞닿아 있어야 하는 건데 무작정 2면만 닿아있으면 되는 줄 알고 얼음이 있는 곳에서 면이 닿아 있는지를 판단해서 틀렸다. 문제를! 잘읽자! import sys from collections import deque input = sys.stdin.readline n, m = map(int, input().split()) arr = [list(map(int, input().split())) for ..
문제 요약 문자열 안에 P 로봇의 위치에서 k 간격 사이에 있는 H만 집을 수 있을 때, H를 집을 수 있는 로봇 P의 최대 개수를 구하시오. 원본 https://softeer.ai/practice/6279 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 풀이 처음에는 dfs로 풀었는데 최소 경우는 본인 위치에서 가장 먼 것을 골랐을 때이기 때문에 굳이 dfs로 모든 경우를 확인하기 보다는 가장 먼 위치의 하나를 고르면 최대 개수가 구해진다. 올바른 풀이에 근접하게 접근하는 실력은 많이 늘었는데 범위나 반복 break 조건 같은 부분만 더 신경 쓰면 될 것 같다. import sys input = sys.stdin.readline n, k = map(int, input().split..
문제 요약 N개의 수로 이루어진 리스트가 주어진다. 한 줄에 하나씩 값을 하나 입력할 때, 해당 값이 리스트에서 중앙값이 될 수 있는 경우의 수는? 단, 값은 세개씩만 비교한다. Ex) 1 2 3 4 5 -> 1 2 3 / 1 2 4 / ... 원본 https://softeer.ai/practice/6247 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 풀이 오랜만에 온전히 내힘으로 푼듯한 코드 처음 풀이 방법 생각부터 틀린 부분 찾는 것까지 순조로웠다. 이진탐색은 이제 어디가서 이해했다고 말할 수 있겠다 ㅠㅜ 감격스러웡 풀이 아이디어 이진 탐색으로 값이 있는지 찾으면 해당 인덱스는 앞에 있는 값의 개수이고, n-1에서 인덱스를 뺀수는 뒤에 있는 값의 개수니까 곱하면 되겠다. 여기..
문제 요약 A와 B, 두 개의 조립라인이 있고, A1 -> A2 이렇게 이동하거나 A1->B2 이렇게 i에서 i+1로 라인을 이동할 수 있는데 다른 조립라인으로 이동할 때는 추가적인 이동시간이 걸린다. 가장 빠른 조립라인의 시간을 구하여라. 원본 https://softeer.ai/practice/6287 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 풀이 풀이1(시간초과 및 오답) 처음 재귀로 접근했을때, 예시 테스트 케이스만 맞고 두개는 오답, 두개는 시간초과가 떴다. 시간초과는 예상 했는데 오답인 부분은 어디서 오답이 발생하는 지 모르겠다. import sys input = sys.stdin.readline n = int(input()) arr, AB = [[0]*n for _..
문제 요약 n*n 배열에서 m개의 위치를 차례대로 방문할 수 있는 경로의 개수는? 원본 https://softeer.ai/practice/6246 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 풀이 import sys input = sys.stdin.readline n, m = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(n)] goals = [] for _ in range(m): x, y = map(int, input().split()) goals.append((x-1, y-1)) answer = 0 d = [(-1,0), (1,0), (0,-1), (0,1)] visited = [..
문제 요약 L만큼의 거리 사이에 N개의 휴게소가 세워져 있다. M개의 휴게소를 더 추가로 세워서 구간 사이의 거리 줄이려고 한다. 이미 세워진 곳과 출발지점, 끝지점에는 추가로 휴게소를 못 만든다. 휴게소를 더 세웠을 때, 구간 최대값 중 최소값은 얼마인가? 원본 https://www.acmicpc.net/problem/1477 1477번: 휴게소 세우기 첫째 줄에 현재 휴게소의 개수 N, 더 지으려고 하는 휴게소의 개수 M, 고속도로의 길이 L이 주어진다. 둘째 줄에 현재 휴게소의 위치가 공백을 사이에 두고 주어진다. N = 0인 경우 둘째 줄은 빈 줄 www.acmicpc.net 풀이 이 문제는 얼마 전에 풀었던 프로그래머스 징검다리 문제랑 같은 문제이다. https://eaz-coding.tisto..
문제 요약 컴퓨터 성능을 향상 시킬 때, 비용은 (향상하려는 목표 - 컴퓨터 성능)의 제곱 만큼이 사용된다. b 이내에서 최소 값을 최대로 끌어 올릴 수 있는 최소값은? 원본 https://softeer.ai/practice/6252 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 풀이 문제를 자세히 제대로 읽자! 처음에 문제를 잘못 이해해서 한참을 엉뚱한 풀이로 풀고 있었다. 예를 들어 5 3 9 8 4 3 1 8 6 이라고 입력값이 들어올때, 사용되는 비용을 1을 5까지 올린다고 하면, 비용 계산을 1->3, 3->5 이렇게 계산해서 (3-1)**2 + 3*(5-3)**2 해서 4+12 = 12 인줄 알았다. 이렇게 계산하는게 아니라 (5-1)**2+3*(5-3)**2 해서 16..
문제 요약 돌의 높이가 갈수록 크도록 밟을 때, 최대 밟을 수 있는 개수는? 원본 https://softeer.ai/practice/6293 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 풀이 머리에 DP라는게 뭔지 약간 흔적 정도는 남아 있어서 DP로 푼다는 건 알아 차렸다. 앞에서부터 값을 비교해서 키워나가는 건데 어떻게 했더라 하면서 풀이를 확인하고 나니 지웠던 풀이 방향이 맞았는데 더 생각해볼걸 아쉬웠다. import sys input = sys.stdin.readline n = int(input()) lst = list(map(int, input().split())) dp = [1] * n for i in range(1, n): tmp = 0 for j in range(i..