728x90

전체 글 115

[missing-semester] #1 course overview + the shell

https://missing.csail.mit.edu/2020/course-shell/ Course overview + the shellCourse overview + the shell Motivation As computer scientists, we know that computers are great at aiding in repetitive tasks. However, far too often, we forget that this applies just as much to our use of the computer as it does to the computations we wanmissing.csail.mit.edu 셸(Shell)컴퓨터와 상호작용하기 위한 텍스트 인터페이스 Shell의 작동sh..

[백준] 1010 | 다리 놓기 [파이썬/python]

문제link: https://www.acmicpc.net/problem/1010서쪽의 사이트(N개)와 동쪽의 사이트(M개)를 연결하는 다리를 다리끼리 교차하지 않는 선에서 최대한 많이 지으려고 할 때, 그 경우의 수를 구하는 것인데(여기에서 N≤M 이다), 사실상 mCn을 구하는 것과 같다. 다리끼리는 겹쳐질 수 없기 때문에, 동쪽의 사이트 M개 중 다리를 지을 사이트 N개를 고르기만 하면 골라진 사이트가 서쪽의 어떤 사이트와 연결될지는 자동으로 정해진다. 접근조합을 계산하는 공식대로 코드를 작성했다. 분자끼리 곱하고 분모끼리 곱한 후 분자에서 분모를 나눈 값을 출력하도록 했다. 코드import sysinput = sys.stdin.readlineT = int(input())for i in range(T..

알고리즘 2025.03.16

[백준] 11050 | 이항 계수 1 [파이썬/python]

문제link: https://www.acmicpc.net/problem/11050입력받은 값으로 이항 계수를 구하는 간단한 문제이다. 접근어려울 것 없이, 이항 계수를 구하는 공식을 고려하여 코드를 짰다. 분자를 곱하고 분모를 곱한 후 분자에서 분모를 나누도록 했다.처음에는 코드를 이렇게 짰는데…결과는 성공이었지만 코드가 어딘가 지저분해 보였기 때문에 코드를 조금 고쳐 다시 제출했다.처음에는 연산 수를 줄이면 좋을 것이라는 생각에 K와 N - K를 비교하여 더 적은 값을 반영하는 코드(위 사진 5번 줄)를 작성했었는데, 그러든 말든 시간 복잡도는 여전히 O(N)이라는 것을 알고 해당 코드를 제거했다.또, for문을 두 개로 나눠 분자 값을 구하는 코드(위 사진 8번 줄)도 n*=i 형태로 고쳤다. 코드i..

알고리즘 2025.03.16

[백준] 28279 | 덱 2 [파이썬/python]

문제link: https://www.acmicpc.net/problem/28279 정수를 저장하는 deque를 구현한 후, 문제에서 제시되는 여덟 가지 명령을 입력에 따라 처리하도록 하는 문제이다. 접근deque는 양방향 큐를 의미한다. 양쪽 방향에서 자유롭게 push와 pop을 할 수 있다. 난 이 코드가 아닌 곳에서도 사용할 수 있는 형태의 deque를 만들고 싶었기 때문에 일부러 class Deque를 만들어 문제를 풀었다. 문제에서 제시되는 여덟 가지 명령을 메소드로 만들어 입력되는 숫자에 따라 처리하도록 했다.또, 초기에는 collections의 deque를 이용하지 않고 list를 이용해 구현했는데(그냥 직접 만들고 싶었음) 시간 초과 이슈로 deque를 사용하도록 고쳤다.input()을 이용..

알고리즘 2025.03.15

[백준] 24511 | queuestack [파이썬/python]

문제link: https://www.acmicpc.net/problem/24511 문제 내에 제시된 'queuestack'이라는 특정한 자료구조를 이용해서 제시된 원소를 넣었을 때의 리턴값을 출력하면 된다.  접근queuestack은 원소가 한 개인 큐 또는 스택의 나열이라고 보면 이해하기 쉽다.원소를 삽입할 때는 queuestack의 1번에 삽입할 원소를 push한 후 1번의 자료구조대로 pop하고 그 리턴값을 다음 번호에 넣는 동작을 반복한다.나의 경우 문제가 단번에 이해되지 않아서 그림을 그려 보았다. 문제 페이지에 적힌 queuestack 작동 구조를 단계별로 따라해보거나 문제 페이지의 예제 아래에 적힌 큐스택 내부 표현을 참고하면 문제를 이해하기 쉽다.(설명용으로 그린 그림이 아니라서 도움이 될..

알고리즘 2025.03.15
728x90