https://www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 문제 소스코드 문제풀이 숏코딩을 연습하기 위해 테스트 케이스의 개수를 변수 저장할 이유가 없기 때문에 range안에 입력을 받게 했고, 출력은 f-string을 사용하여 구현했다.
Koala - 9기
https://www.acmicpc.net/problem/18429 18429번: 근손실 웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 www.acmicpc.net 문제 분석 분류 백트래킹, DFS 문제 설명 웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 다행히도 이 대학원생은 N개의 서로 다른 운동 키트를 가지고 있다. 이 대학원생은 하루에 1개씩의 키트를 사용하며, 매일 어떤 키트를 사용할지 마음대로 결정할 수 있다. N개의 운동 키트에 대한..
https://www.acmicpc.net/problem/20540 20540번: 연길이의 이상형 졸업을 앞둔 연길이는 크리스마스가 다가올수록 외로움을 느낀다. 그런 연길이를 위해 동우는 소개팅을 시켜주지는 않고 연길이의 이상향을 찾는 것을 도와주고자 한다. MBTI 신봉자인 연길이는 www.acmicpc.net [문제 해석] 정반대되는 MBTI를 찾는 문제. 배열에 모든 MBTI 알파벳을 저장해두고 입력받은 MBTI알파벳을 지운 뒤 문자열로 합치면 된다. join 함수는 매개변수로 들어온 리스트에 있는 요소 하나하나를 합쳐서 하나의 문자열로 바꾸어 반환하는 함수입니다. python의 join 함수 사용하면 join 앞의 내용을 기준으로 리스트 요소를 합친 문자열을 반환한다 [코드]
문제 https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 코드 풀이 nxm 크기의 직사각형에서 각 꼭짓점이 같은 숫자인 정사각형의 최대 크기를 찾는 문제이다. 1. 이중리스트를 만들고 정사각형의 최대 크기인 min(n,m)을 temp로 지정한다. 3. arr[i][j]에서 temp까지의 증가하는 k 변수를 만들어서 각 꼭짓점이 같은 숫자인지 확인하고 그 길이를 리스트 안에 저장한다. 4. max(리스트)를 출력한다.
https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 백트레킹 개념을 이용하여 문제 풀이를 진행했다. 이때 결과값은 정렬된 상태로 출력해주어야 하므로, go 함수를 호출하기 전에 li를 정렬해준다. M개를 추출을 해야하는 상황에서, arr의 길이가 M과 같아지는 경우(추출 수 충족) 출력 형식에 맞게 출력을 진행해준다. 만약 아직 조건을 충족시키지 못했다면, 아직 arr에 아무것도 없거나 1,1 과 같이 중복 추출이 일어나지 않는 경우 li..
1. 문제 20410번: 추첨상 사수 대작전! (Easy) 한 줄에 걸쳐 준표가 좋아하는 소수 m, 참가자들이 정한 Seed, 시연으로 공개된 X1, X2 이 주어진다. 항상 가능한 상황만 입력으로 주어진다. www.acmicpc.net 2. 코드 m, seed, X1, X2 = map(int,input().split()) for a in range(100): for c in range(100): if X1 == (a*seed +c)%m: if X2 == (a*((a*seed+c)%m)+c)%m: print(a,c) exit() 3. 풀이 설명이 길어서 어려울거란 생각이 무색하게 제목의easy!에 걸맞게 생각보다 쉬웠다! - 처음에는 a,c 값을 x1과 x2, seed를 통해서 표현해보려했으나 귀납적(?..
[문제] “나는 행복합니다~ 한화라서 행복합니다~” 행복한 이 노래 가사! 그렇다. 욱제는 한화 이글스의 열렬한 이다. 욱제는 여름방학을 맞아 치킨과 맥주를 챙겨 야구장을 방문했다! 하지만 이게 웬걸? 치맥에 정신이 팔린 욱제는 그만 자신의 관중석 위치가 담긴 티켓을 잃어버리고 말았다. 욱제가 유일하게 기억하는 것이라고는 자신의 관중석 번호 K뿐이다.당신은 한화 이글스의 감독이다. 열혈 인 욱제의 방문에 깊은 감동을 받은 당신은 욱제가 잃어버린 자리를 찾아주려고 한다. 오늘 경기가 펼쳐지는 잠실구장은 세로 길이가 N, 가로 길이가 M인 N≤M 크기의 관중석을 가지고 있다. 관중석의 왼쪽 위는 (0, 0), 오른쪽 아래는 (N-1, M-1)으로 표시된다. 각 관중석에는 번호가 아래 그림처럼 매겨져있다. (..
10869번: 사칙연산 (acmicpc.net) 10869번: 사칙연산 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 let input = require('fs').readFileSync('dev/stdin').toString().split(' '); const num1 = Number(input[0]); const num2 = Number(input[1]); console.log(num1 + num2); console.log(num1 - num2); console.log(num1 * num2); console.log(Math.floor(num1 / num2)); console.log(n..
14888번: 연산자 끼워넣기 (acmicpc.net) 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 문제분석 N개의 수로 이루어진 수열 A1, A2, ..., AN과 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자(+, -, *, /)가 주어졌을 때, 최대값과 최소값을 구하는 문제다. 이 때, 주어진 수의 순서는 바꿀 수 없고, 식의 계산은 연산자 우선 순위를 무시하고 앞에서부터 차례대로 진행해야 한다. - 입력: 첫째 줄에 수의 개수 N(2 ≤ N..
🔎 처음 시도 이중 포문으로 하나하나 비교하면 되겠지?라는 생각으로 모두 비교해줬는데, 이렇게 하면 입력이 한꺼번에 주어졌을 때 밀리는 현상 때문에 올바르게 판단을 못한다. 얘가 검사를 다할 때까지 sleep을 건다고 쳐도, 잘못된 알고리즘인 것같다는 생각이 들었다. 어쨌든 문자열을 보려면 모든 문자열을 다 확인해봐야 하는데,, 어떻게 할까 하다가 알게된 find 함수 str.find(찾고자하는 문자열) 형식으로 사용된다. 만약 값을 찾으면 str의 해당 인덱스가 반환되고, 없으면 -1을 반환한다. 🤔 두 번째 시도 cnt = 26 # 총 알파벳 개수 while True: sentence = input() sentence.replace(" ", "") if sentence == '*': break for..
문제 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 코드 from itertools import combinations while True: no = list(map(int, input().split())) if no == [0]: break comb = list(combinations(no[1:], 6)) for i in comb: print(*i) print('') 풀이 주어진 숫자 리스트에서 6개의 숫자를 고르는 조합 문제이다..
https://www.acmicpc.net/problem/15917 15917번: 노솔브 방지문제야!! 어떤 수 a가 2의 거듭제곱꼴로 나타내어진다고 해 봅시다. 그렇다면, a = 2n (단 n ≥ 0인 정수) 를 만족할 겁니다. 보통, 각 비트별로 검사를 하면서, 켜져 있는 비트의 개수를 알아내는 것도 좋은 www.acmicpc.net 소스코드 input = __import__('sys').stdin.readline q = int(input()) for i in range(q): cnt=0 a = int(input()) if a == 1: cnt += 1 print(1) while a % 2 != 1: if a // 2 == 1: cnt+=1 print(1) break else: a = a // 2 i..