알고리즘 13

leetcode 88 - Merge sorted Array

https://leetcode.com/problems/merge-sorted-array/ Merge Sorted Array - LeetCode Can you solve this real interview question? Merge Sorted Array - You are given two integer arrays nums1 and nums2, sorted in non-decreasing order, and two integers m and n, representing the number of elements in nums1 and nums2 respectively. Merge nums1 an leetcode.com O(m+n)의 복잡도... 알고리즘 과목 들었던 개념을 다시 찾아보았다 class So..

알고리즘 2023.05.28

백준 2839 - 설탕배달 (python)

https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net from sys import stdin N = int(stdin.readline()) bongji = 0 while N >= 0 : if N % 5 == 0 : bongji += (N // 5) print(bongji) break N -= 3 bongji += 1 else : print(-1)

알고리즘 2023.05.21

백준 2178 - 미로탐색 (python)

https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net N, M = map(int, input().split()) miro = [] for i in range(N): miro.append(list(input())) miro[0][0] = 1 dx = [-1,1,0,0] dy = [0,0,-1,1] q = [[0,0]] while q: x, y = q[0][0], q[0][1] del q[0] for i in range(4): nx = x+dx[i] ny = y+dy[i] if nx>..

알고리즘 2023.05.21

백준 10814 - 나이순 정렬 (class2) (python)

https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 두가지 방식을 고민했었다. 따로 들어온 순서대로 저장을 해두고 나이만 비교할 것인데, 어떤 방식으로 할 것인가. 처음엔 순서대로 list로 저장하며 age와 name을 dict로 저장할까 했는데.. 파이썬 sort key로 하면 나이순으로만 정렬하고 순서는 그대로 두는지 정확히 몰라서 일단 해보았다. 된다.. 파이썬 sort 원리를 더 공부해봐야겠다. import sys num = int(input()..

알고리즘 2023.05.14

백준 10809 - 알파벳 찾기

https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net temp = list(str(input())) lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] for i in range(len(lst)): if lst[i] in temp: result =..

알고리즘 2023.05.07

백준 10845 - 큐 (class2)

https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 이전 스택을 풀고 와서 그런지 금방 풀었다. todo : sys.stdin과 input 차이 확실히 알기 import sys num = int(sys.stdin.readline()) queue = [] for i in range(num) : cmd = sys.stdin.readline().split() # print(command) if cmd[0] == 'push' : queue..

알고리즘 2023.05.07

백준 10828 - 스택 (class2)

https://www.acmicpc.net/problem/10828' 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 처음 시도에선 C언어에서 구현하듯 top포인터를 사용해 풀려다가 파이썬의 편리한 pop() 을 이용해 쉽게 풀고자 했다. index error가 났던 것은 underflow, overflow 처리. import sys num = int(sys.stdin.readline()) stack = [] for _ in range(num): word = sys.stdin.readline(..

알고리즘 2023.05.07