전체 글 29

백준 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

Leetcode 1 - two sum (python)

Input으로 들어온 리스트의 원소 중 두 원소를 합쳐서 target 숫자를 만드는 문제. temp에 target에서 input 리스트의 원소를 순서대로 빼기를 하여 해당 temp 숫자가 input 리스트에 있는지 확인하는 방식으로 풀었다. ex 1. Input: nums = [2,7,11,15], target = 9 Output: [0,1] Explanation: Because nums[0] + nums[1] == 9, we return [0, 1]. ex 2. Input: nums = [3,2,4], target = 6 Output: [1,2] from typing import List def two_sum(nums:List[int], target:int): result = [] for i, num ..

알고리즘 2023.04.09

백준 9655 - 돌게임1 (python)

https://devjeong.com/algorithm/algorithm-1/ 무슨 문제를 풀까 하다가 이곳에서 풀 문제를 정하여 풀고자 한다! [Algorithm] 백준 문제 추천 devjeong.com def stone_game(): num = int(input()) dp = [0 for i in range(num+1)] for i in range(1, num+1): dp[i] = int(i/3) + int(i%3) #print(i, dp[i]) if dp[num] % 2 == 1: print('SK') else: print('CY') stone_game() 만약 dp[i]의 i 자리에 2가 들어오면 CK승, 3이 들어오면 SK 승 ... 이런 식으로 확장. 문제 링크 https://www.acmic..

알고리즘 2023.04.09