분류 전체보기443 [백준 20056번] 마법사 상어와 파이어볼 https://www.acmicpc.net/problem/20056import sysinput = sys.stdin.readline# 마법사 상어가 크기가 N×N인 격자에 파이어볼 M개를 발사# i번 파이어볼의 위치는 (ri, ci), 질량은 mi이고, 방향은 di, 속력은 si# 1번 행은 N번과 연결되어 있고, 1번 열은 N번 열과 연결# 파이어볼의 방향은 어떤 칸과 인접한 8개의 칸의 방향을 의미# 1. 모든 파이어볼이 자신의 방향 di로 속력 si칸 만큼 이동(이동하는 중에는 같은 칸에 여러 개의 파이어볼이 있을 수도 있다.)# 2. 이동이 모두 끝난 뒤, 2개 이상의 파이어볼이 있는 칸에서는 다음과 같은 일이 일어난다. # 2-1. 같은 칸에 있는 파이어볼은 모두 하나로 합쳐진다. #.. 2024. 7. 11. [백준 1043번] 거짓말 https://www.acmicpc.net/problem/1043import sys from itertools import permutations from collections import deque input = sys.stdin.readline # 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 과장해서 말한다 # 당연히 과장해서 이야기하는 것이 훨씬 더 재미있기 때문에, 되도록이면 과장해서 이야기하려고 한다 # 하지만, 지민이는 거짓말쟁이로 알려지기는 싫어한다 # 문제는 몇몇 사람들은 그 이야기의 진실을 안다는 것 # 따라서 이런 사람들이 파티에 왔을 때는, 지민이는 진실을 이야기할 수 밖에 없다 # 당연히, 어떤 사람이 어떤 파티에서는 진실을 듣고, 또다른 파티에서는 과장된 .. 2024. 7. 10. [백준 11004번] K번째 수 https://www.acmicpc.net/problem/11004import sysinput = sys.stdin.readlinen,k = map(int,input().split())numbers = sorted(list(map(int,input().split())))print(numbers[k-1]) 이번 문제는 주어진 n개의 숫자들을 오름차순으로 정렬했을 때 k번째로 오는 숫자를 출력하는 문제이다. 문제 조건이 5*(10**6)인 것을 보고 단순히 파이썬에서 정의된 sorted() 함수를 사용해도 시간초과가 발생하지 않겠다고 판단하여 간단하게 함수를 사용해서 풀이하였다. 2024. 7. 9. [백준 2660번] 회장뽑기 https://www.acmicpc.net/problem/2660import sysfrom collections import dequeinput = sys.stdin.readline# 회원 사이에 서로 모르는 사람도 있지만, 몇 사람을 통하면 모두가 서로 알 수 있다# 각 회원은 다른 회원들과 가까운 정도에 따라 점수를 받게 된다.# 어느 회원이 다른 모든 회원과 친구이면, 이 회원의 점수는 1점# 어느 회원의 점수가 2점이면, 다른 모든 회원이 친구이거나 친구의 친구# 어느 회원의 점수가 3점이면, 다른 모든 회원이 친구이거나, 친구의 친구이거나, 친구의 친구의 친구# 각 회원의 점수를 정할 때 주의할 점은 어떤 두 회원이 친구사이이면서 동시에 친구의 친구사이이면, 이 두사람은 친구사이# 회장의 점수와.. 2024. 7. 9. [백준 1655번] 가운데를 말해요 https://www.acmicpc.net/problem/1655import sys import heapq input = sys.stdin.readline # 정수를 하나씩 외칠때마다 지금까지 말한 수 중에서 중간값을 출력 # 짝수개라면 중간에 있는 두 수 중에서 작은 수 n = int(input()) heap1 = [] # 중간값을 포함한 이전 값 최대힙 heap2 = [] # 중간값 이후의 값 최소힙 for i in range(n): num = int(input()) if len(heap1) == len(heap2): heapq.heappush(heap1,-num) else: heapq.heappush(heap2,num) if heap2 and heap2[0] < -heap1[0]: lvalue = .. 2024. 7. 8. [면접을 위한 CS 전공지식 노트] 프로그래밍 패러다임 0. 프로그래밍 패러다임이란 ?프로그래머에게 프로그램을 어떻게 바라볼지에 대한 관점을 제공하는 개발 방법론 프로그래밍 패러다임은 크게 '선언형'과 '명령형'으로 나누며, 선언형은 함수형이라는 하위 집합을 갖는다. 또한 명령형은 다시 객체지향과 절차지향으로 나뉜다. 1. 선언형 프로그래밍과 함수형 프로그래밍선언형 프로그래밍(Declarative programming)이란 어떻게(How)보다는 무엇(What)을 수행할 것인지에 집중하는 프로그래밍 방식 함수형 프로그래밍의 개념과 특징자료 처리를 수학적 함수의 계산으로 취급하는 프로그래밍 패러다임 함수형 프로그래밍(Functional programming)은 선언형 패러다임의 일종으로, 작은 순수 함수들을 블록처럼 쌓아서 로직을 구현하고 고차 함수를 통해 재사.. 2024. 7. 5. 이전 1 ··· 3 4 5 6 7 8 9 ··· 74 다음