본문 바로가기

전체 글45

[백준-파이썬] 1676번 팩토리얼 0의 개수 (실버5) https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net def facto(n): if n == 0: return 1 return n * facto(n - 1) arr = list(map(int, list(str(facto(int(input())))))) arr = arr[::-1] c = 0 for i in arr: if i == 0: c += 1 else: break print(c) 숏코드 t=int(input())//5 print(t+t//5+t//25) 어떻게 해서 위와 같은 코드가 나왔나 했더니... 1부터 50까지 차례로 숫자를.. 2023. 7. 3.
[백준-파이썬] 10870번 피보나치 수 5 (브론즈2) https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net a, b =0, 1 exec("a, b = b, a+b;" * int(input())) print(a) 2023. 7. 3.
[서평] 점프 투 파이썬 개정판 2.0 예전에 위키독스에서 필요한 부분만 발췌해서 보다가 무료로 책을 공유하신 작가분께 고마운 마음으로 전자책을 구입했었습니다. 근데 의리로 구입한거지 사실... 보기가 편하진 않아서 잘 보진 않았어요. ^^; 가끔 주변에서 파이썬 책 물어보면 저는 항상 이 책을 추천하곤 했어요. :) 다들 입문 초보자에게 완전 쉬운 책으로 추천들 많이 하던데 저는 어차피 기초 책을 살거면 가장 쉬운책부터 사서 두권 세권 사지 말고 한번에 제대로 된 책을 사라고 추천했었어요. 사전처럼 옆에 두고 개념을 기초부터 다지기에 이만한 책이 없다고 생각했거든요. 마침 이번에 개정판이 나온다 해서 뭐가 달라지려나 기대가 됐었는데 마침 서평단을 모집하길래 신청해봤습니다. 운 좋게도 당첨됐네요. :) 받아보니 만족도 200%입니다. 전자책으.. 2023. 7. 3.
[JS] Class. 클래스와 인스턴스 정말 쉽게 설명하겠습니다. 1. 클래스와 인스턴스 클래스 = 설계도(원본) 인스턴스 = 위 설계도로 만들어낸 제품 우선 이렇게 두가지 개념을 외우고 갑니다. :) 2. 클래스를 어떤 때에 사용할까? 클래스는 왜 만들까요? 클래스는 같은 객체를 계~~속 만들어야 할때, 반복되는 노가다를 피하기 위해서 사용합니다. 예를 들어 게임에서 몹이 100마리 나오는 필드가 있다면, 몹 100마리를 일일히 코딩하려면 너무 에너지 소모가 크겠죠...? 설계도 한장을 보고 그 설계도 대로 몹을 계속 만들어내도록 하는 겁니다. 3. 클래스 선언하기 아래는 히어로를 만들어내는 설계도=클래스를 선언하는 방법입니다. class Hero { 설계내용 } 위와 같이 작성하면 Hero라는 클래스를 만드는 겁니다. 설계내용을 채워볼까요.. 2023. 6. 30.
[백준-파이썬] python, 2563번 색종이 (실버5) https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 처음에 이 문제를 접했을 때는 어렵게 생각했어요. 도화지 크기가 100 * 100 이니까 면적을 먼저 구하고 거기서 색종이 면적을 빼고, 다음 색종이의 면적도 빼고, 그럼 첫번째 색종이와 두번째 색종이가 서로 겹치는 면적은 두번 빼는 게 되니까 한번은 다시 더해주고..... 몇시간을 생각하다가 포기했었어요. 근데 한참 묵혀뒀다가 오늘 이 문제를 다시 열어보니, 문제를 보자마자!! 조금 더 쉬운 방법.. 2023. 6. 25.
[백준-파이썬] 2775번 문제. 부녀회장이 될테야 (브론즈1) https://www.acmicpc.net/problem/2775 case = int(input()) for _ in range(case): k = int(input()) n = int(input()) # 0층 인원수 배열 만들기 arr = [level for level in range(1, n+1)] # K층까지 돌고 for i in range(k): # 각층의 n호까지 돌기 for j in range(1, n): # 모든 층의 1호[인덱스0]에는 1명이 살고 있으므로 arr[0]은 필요 X arr[j] += arr[j-1] # 마지막 호실 인원 출력 print(arr[-1]) 케이스 수는 다시 사용되지 않으므로 변수를 할당해줄 필요가 없습니다. 그래서 for _ in ~ 으로 작성합니다. 그리고 0층.. 2023. 6. 23.
[백준-파이썬] 2441번 별 찍기-4 (브론즈3) 간단한 문제입니다. 앞에 몇칸을 띄울 것인가, 별은 몇개를 찍을 것인가 를 생각해보면 됩니다. 공백 별 0 5 1 4 2 3 3 2 4 1 공백은 차례로 증가하는 i만큼 찍으면 되겠고, 별은 그 수를 역산하는 n-i로 찍으면 되겠네요. n = 5, i = 0,1,2,3,4 5-0 = 5 5-1 = 4 5-2 = 3 5-3 = 2 5-4 = 1 이렇게 별은 내려오면서 5개부터 1개까지 찍힙니다. n = int(input()) for i in range(0, n): print(" " * i, "*" * (n-i), sep="") 컴마로 구분해주면 요소 사이에 무조건 공백이 생기기 때문에 sep="" 속성으로 공백과 별 사이의 컴마로 인한 공백을 없애주었습니다. 2023. 6. 23.
[백준-파이썬] 2558번 A+B-2 (브론즈5) 예제입력을 보면 input()을 두번 받습니다. a = int(input()) b = int(input()) print(a + b) 숏코드를 보니 다른 분은 이렇게 짜셨네요. print(int(input())+int(input())) 변수를 쓰지 않고 한줄로 처리하셨군요. 2023. 6. 22.
[백준-파이썬] 1712번 손익분기점 (브론즈2) 1. 내 코드 a, b, c = map(int, input().split()) # 손익분기점이 존재할 수 없는 경우 if b == c or b > c: qty = -1 else: qty = a / (c - b) + 1 print(int(qty)) 판매단가가 제작단가보다 낮거나 같은 경우는 손익분기점을 넘는 그 순간이 영영 오지 않습니다. 그래서 제작단가 == 판매가 or 제작단가 > 판매가 라고 조건을 주었는데 숏코드를 보니 그걸 한줄로 압축시킬 수 있네요. 고정비용 / (판매단가 - 제작단가) 즉, 고정비용 / 수익 이 됩니다. 수익을 몇번 내야 고정비용을 넘는지 구하면 되겠죠. 고정비용이 1000만원이고, 노트북 한대 팔아서 100만원이 남는다면 10대를 팔아야 고정비용이 메워집니다. 만약 90만원이.. 2023. 6. 22.