Hello World! 32

백준 2217 로프 - python

2217번: 로프 (acmicpc.net) 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 문제 유형 ) 그리디, 정렬 문제 ) N 개의 로프가 있는데 이걸로 물건을 들어올릴 수 있다. 이 로프의 굵기나 길이가 달라서 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만, 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k 개의 로프를 사용하여 중량이 w인 물체를 들어올린다면 w/k만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 이용하..

중복을 제거하는 자료구조 set (python 👀 )

python 의 set 집합에 관련된 것을 쉽게 처리할 수 있다. s = set([1,2,3]) >> {1,2,3} s1 = set("python") >>{'p','y','t','h','o','n'} 비어있는 자료형은 s = set() 으로 만들 수 있다. set 의 특징 - 순서가 없다 - 중복을 허용하지 않는다. set과 관련된 함수- add : 값 1개 추가하기- update : 여러개 추가하기- remove : 특정 값 제거하기 1181번: 단어 정렬 (acmicpc.net) 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는..

백준 1003 피보나치 함수 - python

1003번: 피보나치 함수 (acmicpc.net) 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 ) fibonacci(n)이 n번째 피보나치 수를 의미할 때 fibonacci(n)이 호출되면 0, 1이 몇번 출력되는가? 풀이 ) 이 문제는 dp 로 푸는 문제이다. 0 을 호출한 횟수, 1을 호출한 횟수를 리스트에 메모이제이션으로 담는다. 메모이제이션은 이전에 계산된 결과를 일시적으로 기록해 놓는 넓은 개념을 의미한다. 0 1 f(0) 1 0 f(1) 0 1 f(2) 1 1 f(3) 1 2 f(4) 2 3 f(5) 3 5 f(0) 부터 f(5) 까지 0과 1이 몇 번 호출되는지 세어 보니, 이것 역..

백준 2748 피보나치 수 2 - python

2748번: 피보나치 수 2 (acmicpc.net) 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 문제 ) 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,..

백준 2747 피보나치 수 - python

2747번: 피보나치 수 (acmicpc.net) 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, ..

런타임 에러 🤣

코딩테스트를 위해 백준 문제를 풀고 있는데 가끔 런타임 에러가 떴다. 런타임 에러는 언제 일어나는걸까 🤔 ✔ 배열에 할당된 크기를 넘어서 접근할 때 ✔ 지역 배열의 크기가 스택 크기 제한을 넘어갈 때 ✔ 전역 배열의 크기가 메모리 제한을 초과할 때 ✔ 라이브러리에서 예외 발생 ✔ 재귀 호출이 너무 깊어질 때 ✔ 이미 해제된 메모리를 다시 참조할 때 등등 여러가지가 있겠다!!

백준 10828 스택 - python

10828번: 스택 (acmicpc.net) 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 ..

백준 1373 2진수 8진수 - python

1373번: 2진수 8진수 (acmicpc.net) 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net 내가 푼 풀이 - 0 - 7 을 나타낼 수 있는 8진수 - 3개의 비트만 있으면 모두 표현 가능 - 2진수를 8진수로 바꾸려면, 소수점 기준 3자리로 나눠서 십진 변환을 한다. - ex. 11001100 이면 -> 11 001 100 이렇게 세자리로 끊어서 -> 3 1 4 연습장에 풀듯이 받아온 숫자를 세자리씩 끊어서 하나씩 반복문을 돌려버렸다. -> 처음에 푼 풀이는 시간초과.... 당연한 결과인가 🤣 다시 풀어본 풀이! 먼저 int(input(),2) 로 숫자를 받는다 여기서 2는 2진수를 의미한다. n 을 출..

백준 1357 뒤집힌 덧셈 - python

1357번: 뒤집힌 덧셈 (acmicpc.net) 1357번: 뒤집힌 덧셈 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev( www.acmicpc.net 문제 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev(X) = 1이다. 두 양의 정수 X와 Y가 주어졌을 때, Rev(Rev(X) + Rev(Y))를 구하는 프로그램을 작성하시..