백준 28278번 스택 2 - Python 문제 https://www.acmicpc.net/problem/28278 문제 해석 입력 첫번째 줄에 명령의 개수가 입력되고 그 뒤로 명령이 입력된다. 이때 입력은 다음을 의미한다. '1 X' : 스택에 'X' Push '2' : 스택이 비었다면 -1을, 아니라면 스택을 Pop하고 삭제한 값을 출력 '3' : 스택의 길이를 출력 '4' : 스택이 비었다면 1을, 아니라면 0을 출력 '5' : 스택의 Top을 출력, 스택이 비었다면 -1을 출력 출력 입력 설명 참조. 풀이 1번 풀이 로직은 어렵지 않으나, 파이썬으로 풀어서 그런지 시간이 꽤 벅찼음. 스택 하나 만들어서 명령 따르면 되는거고, 핵심은 삼항연산자(크게 의미가..
썸네일 C언어 기초 문법 총정리 🦖 30분만에 나 C언어 할 줄 알아! 할 수 있는 기초 문법 총정리! 짧게 정리해서 설명 부족할 수 있음! 그럴 땐 우리의 친구 챗 지피티와 함께하기. 기초 출력 Hello, World !!! #include int main () { printf("Hello, World !!!"); return 0; } #include => 표준 입출력 라이브러리, 'stdio.h'를 포함한다. int main() {} => 반환값이 없는 main 함수를 선언한다. printf("Hello, World !!!"); => 'Hello, World'를 콘솔에 출력한다. return 0; => main함수를 마친다. 변수 선언, 입출력 #include int main () { int Value_1 ..
백준 1874번 스택 수열 # 문제 https://www.acmicpc.net/problem/1874 *** # 문제 해석 ## 입력 첫번째 줄에 두번째 줄부터 들어올 배열의 크기 N이 주어지고, 다음 줄부터 N개의 정수가 입력된다. ## 출력 1부터 N까지의 수를 이용해 push 와 pop 연산을 하는데, pop 할 때 삭제되는 수를 배열로 만들었을 때, 입력된 배열과 같아지도록 만들기 위해 해야하는 연산의 순서를 출력한다. 이때, push는 +로, pop은 -로 출력한다. 만약 입력된 배열과 같이 만들 수 없다면, NO를 출력한다. 예를 들어, [1, 3, 2]가 배열로 입력되었다면, push 연산을 할 때, 1부터 N까지 들어가기 때문에 push연산으로 [1] pop연산으로 [] push 연산으로 [2] push 연산으로 [..
썸네일 귀엽게 생긴 GO랭을 써보자 왜 GO인가? 나 석준쓰 17살인디 프로그래밍 처음 배울때 C언어로 배웠다. 거의 뭐 인생의 1/3을 프로그래밍 한 장인이라고 볼 수 있겠다. 아무튼, 뭘 하고는 싶고 할 줄 아는 건 없으니 아는 C언어로 알고리즘 문제만 풀었다. 그러다가... 쓰잘때기없이 길고 복잡하고 간지나기는 한 C언어 문법에 회의감이 느껴졌다. 그래서 파이썬을 시작했다. 그래서 지금까지 잘 쓰고 있었는데. . . . 너무 느리다. 그래서 뭘 하기만 하면 시간초과가 나온다. 물론 효율적으로만 작성하면 그런 일은 없지만, 평소에도 파이썬 문법이 좀 이상하다고는 생각하고 있었다. 예를들어 변수 선언과 값 할당이 같은 코드로 되어서 애매하다거나, 함수를 작성할 때 리턴값을 정확히 선언하지 않아 실수한다거나, 정수형 변수에 문자를 할당해도..
썸네일 백준 9506번 약수들의 합 문제 https://www.acmicpc.net/problem/9506 문제 해석 입력 한 줄에 하나씩 정수가 입력되고 -1이 입력되면 프로그램을 종료한다. 출력 입력받은 수가 '완전수'라면 "{n} = {n의 약수} + {n의 약수} ... {n의 약수}"를 출력한다. '완전수'가 아니라면 "{n} is NOT perfect." 를 출력한다. 완전수란 자기 자신을 제외한 모든 약수의 합과 자기 자신이 같은 수를 말한다. 풀이 1번 풀이 n이 i로 나누어 떨어지는지 확인하고 나누어 떨어진다면 약수 배열에 추가한다. 1부터 n-1 까지 반복한다. 약수 배열의 합과 n이 같다면 완전수로 출력한다. 아니라면 완전수가 아님을 출력한다. -1이 입력될 때까지 반복한다. while Tr..
썸네일 백준 27433번 팩토리얼 2 - Python 문제 https://www.acmicpc.net/problem/27433 문제 해석 입력 정수 N이 출력된다. 출력 N!을 출력한다. 풀이 1번 풀이 재귀함수로 풀어보겠다. 함수 &#39;Factorial&#39; 는 인수로 정수 하나를 받고, 그 정수의 팩토리얼을 반환한다. &#39;Factorial&#39;은 전달된 정수가 2보다 작으면 1을 리턴하고 아님 정수 * Factorial(정수 - 1)을 반환한다. def Factorial(Num): if Num < 2: return 1 else: return Num * Factorial(Num-1) print(Factorial(int(input())))
썸네일 백준 28215번 대피소 - Python 문제 https://www.acmicpc.net/problem/28215 문제 해석 입력 첫 번째 줄에 집의 수 N, 대피소의 수 K가 입력된다. 그 뒤 집들의 좌표가 N줄에 걸쳐 입력된다. 출력 입력 받은 집의 좌표 중에서 K개의 대피소를 선정한다. 선정할 수 있는 모든 경우의 수 중에서 대피소에서 집 까지의 거리 중 가장 긴 값이 가장 작을 때의 최장거리를 출력한다. 여기서 대피소 까지의 거리란 (대피소의 X좌표) - (집의 X좌표) 의 절대값과 (대피소의 Y좌표) - (집의 Y좌표) 의 절대값을 합한 값을 의미한다. 풀이 1번 풀이 브루트포스 알고리즘을 이용한다. 집들 중에서 대피소를 선정하는 과정은 &#39;조합&#39;을 활용한다. but. 대피소의 수가 정해져있지 않으므로 직접 구현하기보다는 ..
썸네일 백준 28214번 크림빵 - Python 문제 https://www.acmicpc.net/problem/28214 문제 해석 입력 정수 N, K, P와 빵의 정보가 입력된다. N은 빵 묶음의 수, K는 빵 한 묶음 당 빵의 개수, P는 크림이 없는 빵의 최대치이다. 빵의 정보는 이진수 배열로 입력되며 1은 크림이 있는 빵, 0은 크림이 없는 빵을 나타낸다. 출력 크림이 없는 빵인 P개 미만인 묶음의 수를 출력한다. 풀이 1번 풀이 첫 번째 반복문에는 빵 묶음의 개수, 두 번째 반복문에서는 한 묶음 당 빵의 개수 동안 2중 반복문을 돈다. 안쪽 반복문을 도는 동안 0의 개수를 카운트하고, 저장한 뒤, 카운트 한 변수를 초기화 한다. 바깥쪽 반복문이 끝난 뒤, 판매 가능한 빵의 개수를 출력한다. N, K, P = map(int, input().sp..
썸네일 백준 2745 진법 변환 (Python) 문제 https://www.acmicpc.net/problem/2745 풀이 1번 풀이 Alphabet = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] N, B = input().split() N = N[::-1] #앞자리부터 계산하기 위한 슬라이싱 B = int(B) Num = 0 #10진수 변환값 for i in range(len(N)): Num += Alphabet.index(N[i]) * (B ** i) #알파벳 리스트에서..
썸네일 백준 2563 색종이 (Python) 문제 https://www.acmicpc.net/problem/2563 풀이 Paper = [[0 for _ in range(101)] for _ in range(101)] I = int(input()) Color_Paper = [list(map(int, input().split())) for _ in range(I)] for i in Color_Paper: for a in range(i[0], i[0] + 10): for b in range(i[1], i[1] + 10): Paper[a][b] = 1 print(sum([Paper[i].count(1) for i in range(101)])) 100X100 사이즈의 도화지 2차원 배열을 만들고, 색종이들의 위치를 기반으로 색종이가 있는 부분을 1로 바꾸..