일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- text
- 리뷰
- 정보보호 영재교육원
- 10995
- 2506
- 차세대 보안 리더 양성
- 1547
- 2965
- 11943
- 정보보호 영재원
- EOF
- BoB 후기
- 2476
- Python
- 4101
- BoB 7기
- BOB
- 10833
- 5586
- 11109
- 영재원
- acmicpc
- 5086
- 차세대 보안 리더 양성 프로그램
- 2501
- Best of the Best
- 공주대 정보보호
- boj
- 2605
- 영재교육원
- Today
- Total
목록프로그래밍_일반 (360)
짱해커가 되어보자
문제 문제 제목은 분산처리로 컴퓨터 10개가 주어진만큼 작업을 수행한다면, 마지막 작업은 몇번째 컴퓨터가 수행하는가? 라는 질문에 대한 답을 T 횟수 만큼 반복해주면 된다. 컴퓨터의 번호는 1번 ~ 10번 까지 있다. 입력받은 횟수(T) 마다 a와 b를 입력받아 a^b 만큼 연산을 수행 한 후 최종 번호를 출력하면 된다 a : N(1 ~ 100) b : N(1 ~ 1,000,000) 입력 : T, a, b 출력 : N(1~10) 풀이 문제에 주어진 1초라는 제한을 보았을 때 단순 연산으로는 제한이 걸릴 것 같았다 제곱 연산을 수행한 후 마지막 1의 자리의 숫자만 확인하므로 a의 1~10까지 b를 반복하며 규칙성을 확인해보았다 1 ^ N = 1 2 ^ N = 2, 4, 8, 6 ... 3 ^ N = 3, ..

OS : Windows 10 [./] call venv/Scripts/ActivateVirtual Studio Code의 터미널에서 call을 통해 virtualenv를 실행하려 하면 다음과 같은 오류가 발생한다 해결 제일 간단한 방법 VScode의 터미널 우측 옵션의 Select Default Shell을 CMD로 변경하여 커맨드로 실행 PowerShell 세팅 변경 PowerShell 관리자 권한 실행 Set-ExecutionPolicy Unrestricted . ./venv/Scripts/activate.ps1 실행 VScode 실행 시 virtaulenv 자동 실행 vscode Command Palette( Crtl + Shift + p ) Python: Select interpreter 검색 후..
문제 우선 이진수 중 다음의 특정 조건을 만족하는 경우 이친수라 하여, 해당 개수를 구하는 문제이다 맨 처음 앞자리가 무조건 1로 시작해야한다 연속된 1이 올 수 없다 입력 : N(1~90) 출력 : N에 대한 이친수의 수 풀이 해당 조건을 만족해야할 경우 어떤 숫자이든 시작은 1이며, 다음에 이어오는 숫자는 0이어야 하므로 10이 기본 시작임을 알 수 있다 1의 경우 1. 1개 2의 경우 10. 1개 3의 경우부터 맨 뒷 바이트인 0,1 로 2개 4의 경우 3의 해당하는 경우와 2처럼 맨 앞이 10인 경우 3개. 5의 경우 4처럼 000, 001, 010의 경우와 3처럼 100, 101이 와야함을 알 수 있었다 e[i] = e[i-1] + e[i-2]와 같은 단순 점화식 문제로 풀리는데, 내가 생각하는..
문제 총 10개의 수를 입력받아, 각 수를 42로 나눈 나머지를 확인한다 이 때 서로다른 나머지가 몇 개나 있는지 출력한다 입력 : 자연수 10개 출력 : 서로 다른 나머지 수 풀이 값을 10개 입력받아, 해당 나머지를 체크한다 이후 체크한 개수를 출력한다 c = [0] * 42 for _ in range(10): c[int(input())%42] = 1 print(c.count(1))
문제 이번 문제는 달팽이 문제로 잘 알려져 있는 문제이다 달팽이가 V 높이를 올라가는게 목표이며, 낮에 A만큼 올라간 후 밤에 B 만큼 내려간다 정상에 올라간 이후에는 미끄러지지 않으며, 예외에 대한 입력은 받지 않는다 입력 : V, A, B 출력 : 정상까지 올라는데 걸리는 일 수 풀이 import math a, b, v = map(int, input().split()) print(math.ceil((v-a) / (a-b)) + 1)문제의 풀이의 시간이 0.15초인 점과 입력 최대가 10억인 점을 보았을 때 단순 반복으로는 안된다 정상에 도착했을 때는 미끄러지지 않는다 : (v-a) 로 시작 낮에 A만큼 올라가고 밤에 B만큼 미끄러진다 : (a-b) * c 그렇기에 (v-a)까지 (a-b) * c 로 ..
문제 고정된 개수인 9개의 서로 다른 자연수를 각 행마다 입력받고, 이 중 최대값과 몇 번째 숫자인지 출력 입력 : 서로 다른 자연수 * 9행 출력 : 가장 큰 수와 몇번째 행 풀이 가장 큰 수와 해당 숫자에 대한 행번호 출력 arr = [int(input()) for _ in range(9)] print(max(arr), arr.index(max(arr))+1, sep='\n')
문제 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때 입력 : [int]날짜 출력 : 0 or 1 풀이 4의 배수를 기본으로, 100의 배수는 아니며, 400은 윤년이다 ( year % 4 == 0 and year % 100 != 0 or year % 400 == 0 ) year = int(input()) print(1 if year % 4 == 0 and year % 100 != 0 or year % 400 == 0 else 0)
문제 입력 : a * b 세자리수 출력 : a * b : 곱셈 과정의 중간 연산 결과와 최종 결과 출력 풀이 a * (b의 뒷부터 인덱스 하나씩)의 출력 결과와 마지막 a * b, 의 결과를 출력하였다 a, b = int(input()), int(input()) for i in str(b)[::-1]: print(a * int(i)) print(a * b)
문제 입력 : 고정 지출비용, 생산비용, 판매값 출력 : 손익분기점을 넘는 판매수량 | 손익분기점을 못넘는 경우 -1 풀이 처음에는 단순하게 생각하여, 아래와 같은 코드로 루프를 돌아봤다 constCost, pCost, price = map(int, input().split()) if(pCost >= price): print(-1) exit() while True: if(constCost + pCost * c = price):..