본문 바로가기

취준19

[백준] [Python] #7576 토마토 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 3차원 토마토 문제를 보다가 2차원 토마토 문제를 먼저 풀기로 했다. 다른 node에 영향을 주는 노가다 문제니 DFS 혹은 BFS인데, 최소라는 단어가 나오면 일단 BFS로 가라 했다. 그래서 아래와 같이 풀었는데, 음 찬찬히 다시보니 문제가 굉장히 많은 코드이지만 가장 큰 문제가 2가지 정도 있다. import sys from collections import deque sys.. 2022. 2. 22.
[백준] [Python] #13904 과제 https://www.acmicpc.net/problem/13904 13904번: 과제 예제에서 다섯 번째, 네 번째, 두 번째, 첫 번째, 일곱 번째 과제 순으로 수행하고, 세 번째, 여섯 번째 과제를 포기하면 185점을 얻을 수 있다. www.acmicpc.net 처음 읽어봤을 땐 문제가 짧아서 금방 풀수 있을 줄 알았건만,, 문제 읽고 한 10분은 뭐라하는 건지 감도 안왔다. 앞에서부터 찾아보면, 해당 일에 마감이 지나지 않은 과제 중 점수를 가장 큰걸 골라도 답이 아니다. 인간 지능으로도 케이스를 못잡겠는데 내가 로직이 구현이 가능할까 싶어 힌트를 역으로 찾아가기로 했다. 주어진 힌트를 보면, 30+50+40+60+5 라서 185라는 것을 알 수 있다. 하나씩 손으로 그려가며 케이스를 찾아본 결과.. 2022. 2. 10.
[백준] [Python] #2869 달팽이는 올라가고 싶다 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 처음엔 되게 쉬운 문제인줄 알고 문제 그대로 계산만 했다. 하지만 역시 인생 쉽지않았다... 그대로 계산만하니 시간초과가 났다. 1차 시도 import sys sys.stdin = open("input.txt", "r") a, b, v = map(int, input().split()) ans = 1 while(True): v -= a if(v 2021. 11. 13.
[프로그래머스] [Python] Level3_네트워크 https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr def solution(n, computers): cnt = 0 visited = [False for _ in range(n)] for com in range(n): if visited[com] == False: dfs(n,computers,com,visited) cnt += 1 return cnt def dfs(n, computers, com, visit.. 2021. 10. 2.
[프로그래머스] [Python] Level2_조이스틱 https://programmers.co.kr/learn/courses/30/lessons/42860 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr 실패 코드 def solution(name): #유니코드로 변환하여 숫자 비교 A->65, Z->90, N->78 ,O->79 cnt = 0 ans = [] arr = [ord(i) for i in name] print(arr) for a in arr: ans.append(min(a-65,91-a)) print(ans) print(set(ar.. 2021. 10. 2.
[프로그래머스] [Python] Level1_K번째 수 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr def solution(array, commands): answer = [] #command[0]-1 : slice start #command[1] : slice end #command[2]-1 : index for command in commands: answer.append(sorted(array[command[0]-1:command[1]])[command[2]-1]) return answer 2021.09.29 def so.. 2021. 9. 30.