Algorithm 31

백준#1417 국회의원 선거 in Python

1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 이 문제를 풀기 위한 자료구조로 우선순위 큐가 적합하다는 것을 깨닫는 순간 빠르게 풀리는 문제다. 필자는 그걸 깨닫지 못해 여러 시행착오와 반례 선정을 거쳐 꽤 오랜 시간이 걸렸다... 후보가 1명일 경우, 바로 0을 프린트하고 종료한다. 후보가 2명 이상일 경우, 0번 인덱스(1번 후보)의 값을 target 변수에 저장해 따로 떼어두었다. └ 이 자체가 필수적인 의미를 갖지는 않지만, 메모리를 고려하지 않는 내 작은 코드에서는 이 라인을 없애는 순간..

Algorithm/BOJ 2024.03.20

백준#2075 N번째 큰 수 in Python

2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 이 문제의 핵심은 입력으로 주어지는 수를 모두 배열에 때려 박아서 정렬하는 것보다 더 효율적인 방법이 무엇인지 고민하는 것이다. 여기서, 'N번째 큰 수'란, 'N개의 수들 중 가장 작은 수'라는 것을 깨닫고 나면 문제가 쉽게 풀린다. 문제 예시처럼 N=5라고 가정할 때, 최대 크기가 5인 리스트를 만들었다. └ 크기가 5보다 작으면 일단 숫자를 넣고, 그 외의 경우에는 (크기가 5인 경우) 다음 행위를 실행한다. 리스트의 크기가 5일 때 새로운 숫자를 만나면 최소값과..

Algorithm/BOJ 2024.03.20

[알고리즘 공부] 순환 Recursion

순환Recursion이란? '순환'이란 자기 자신을 호출하는 함수를 뜻합니다. 아래처럼요. void func(...){ ... func(...); ... } 어떤 함수가 자기 자신을 다시 호출한다면, 당연히도, 한 번 그 함수가 실행되면 무한 루프에 빠지겠죠. 예를 들어 "Hello, World!"를 출력하는 함수를 작성하고 프린트문 뒤에 그 함수를 또 호출한다면, "Hello, World!"만 끝없이 출력될겁니다. def prtHello(): print("Hello, World!") prtHello() if __name__ == "__main__": prtHello() // 출력 Hello, World! Hello, World! Hello, World! Hello, World! Hello, World!..

goorm 소수 판별, 고장난 컴퓨터, 하노이의 탑

소수 판별 # -*- coding: utf-8 -*- # UTF-8 encoding when using korean n = int(input()) sw = 0 for i in range(2, n): if(n % i == 0): sw += 1 if(sw == 0): print("True") else: print("False") 고장난 컴퓨터 # -*- coding: utf-8 -*- # UTF-8 encoding when using korean n, tick = map(int, input().split(' ')) num = input().split(' ') cnt = 0 for i in range(0, n-1): if((int(num[i+1]) - int(num[i])) > tick): cnt = 0 el..

Algorithm/goorm 2020.09.13

goorm 재원 넘버, 부모 단어, 피자 쿠폰

재원 넘버 # -*- coding: utf-8 -*- # UTF-8 encoding when using korean n = int(input()) cnt = 0 for i in range(1, n+1): cnt += 3 ** i print(cnt) 부모 단어 # -*- coding: utf-8 -*- # UTF-8 encoding when using korean n,m = input().split(' ') parent = [i for i in n] qst = [j for j in m] sw = 0 for k in range(len(qst)): if qst[k] not in parent: sw = 1 if(sw==0): print("YES") else: print("NO") 피자 쿠폰 #include us..

Algorithm/goorm 2020.09.11

goorm 가위바위보, 홀수 놀이, 멀티탭 사용

가위바위보 # -*- coding: utf-8 -*- # UTF-8 encoding when using korean s = input().split(' ') x = 0 #가위 o = 0 #주먹 q = 0 #보 for i in range(5): if(s[i]=='1'): x += 1 elif(s[i]=='2'): o += 1 elif(s[i]=='3'): q += 1 if(x==0 and o!=0 and q!=0): print(q) elif(x!=0 and o==0 and q!=0): print(x) elif(x!=0 and o!=0 and q==0): print(o) else: print(0) 홀수 놀이 #include #include using namespace std; int main() { int ..

Algorithm/goorm 2020.09.07