개발자/알고리즘 6

[백준] 13300번 (feat. 2차원 배열)

[백준] 13300번 (feat. 2차원 배열) https://www.acmicpc.net/problem/13300 13300번: 방 배정 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 수학여행에 참가하는 학생 수를 나타내는 정수 N(1 ≤ N ≤ 1,000)과 한 방에 배정할 수 있는 최대 인원 수 K(1 < K ≤ 1,000)가 공백으로 분리되어 www.acmicpc.net import sys n, p = map(int, input().split()) lst = [[0 for j in range(6)] for i in range(2)] for i in range(n): a, b = map(int, sys.stdin.readline().split()) lst[a][b - 1] += 1 room ..

[백준] 3273 (feat. 집합 set)

[백준] 3273 (feat. 집합 set) https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net num = int(input()) lst = list(map(int, input().split())) sum = int(input()) count = 0 reside = [] for i in lst: reside.append(sum - i) intersection = list(set(lst) & s..

[백준] 10808 (feat. 파이썬 문자의 아스키코드)

[백준] 10808 (feat. 파이썬 문자의 아스키코드) https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net lst = [] line = input() for i in range(0, 26): lst.append(0) for i in line: lst[ord(i) - ord('a')] = lst[ord(i) - ord('a')] + 1 for i in lst: print(i, end = " ") # 파이썬에서 문자를 아스키코드로 바꾸는 함수!! 핵심은, 파이썬에서 문자의 아스키코드값을 던져주는 내장함수 ord()이다. 기억해두고 잘 써먹자...

[백준] 1406번 (feat. reverse와 reversed의 차이점)

[백준] 1406번 (feat. reverse와 reversed의 차이점) https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net => 시간초과 뜸. import sys alpha = list(input()) num = int(input()) cur = len(alpha) for i in range(num): line = sys.stdin.readline().split() if line[0] == 'P': alpha.insert(cur, line[1])..

[백준] 1874번 R

[백준] 1874번 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net import sys num = int(input()) stack = [] plus_minus = [] m = 0 n = 0 flag = 0 for i in range(num): n = int(sys.stdin.readline().strip()) if n > m: # for j in range(m ..

[백준] 10828번 (feat. input()과 sys.stdin.readline()의 차이)

[백준] 10828번 (feat. input()과 sys.stdin.readline()의 차이) https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import sys class Stack: def __init__(self): self.stack = [] def isEmpty(self): if len(self.stack) == 0: return 1 return 0 def push(self, num): self.stack.appen..