ideal insane

Resistance ∙ Pioneer ∙ 생산자

Algorithm 96

2798: 블랙잭

2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net from itertools import combinations # 입력 값 받기 (N, M) = input().split() card_box = input().split() # 조합 함수를 활용하여 가능한 카드 3장의 조합 구하고 sum()으로 카드 3장의 합 구하기. combination = list(combinations(card_box, 3)) sum_list = list() for set in combination: set..

1015: 수열 정렬 - 문제 이해/해설

1015번: 수열 정렬 P[0], P[1], ...., P[N-1]은 0부터 N-1까지(포함)의 수를 한 번씩 포함하고 있는 수열이다. 수열 P를 길이가 N인 배열 A에 적용하면 길이가 N인 배열 B가 된다. 적용하는 방법은 B[P[i]] = A[i]이다. 배열 A가 주 www.acmicpc.net B[ P[ i ] ] = A[ i ] 비내림차순 : 각각의 원소가 바로 앞에 있는 원소보다 크거나 같을 경우 이 두가지가 핵심이다. 비내림차순을 다시 한번 강조하자면 (인덱스 순서로 정렬되어 있을 때) 각각의 원소가 바로 앞에 있는 원소보다 크거나 같을 경우이다. = 오름차순 문제에서 배열 A가 주어졌을 때, 수열 P를 적용한 결과가 비내림차순이 되는 수열을 찾는 프로그램을 작성하라고 되어 있다. 배열 A가 ..

2525: 오븐 시계

2525번: 오븐 시계 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.) www.acmicpc.net #입력 값을 정수형으로 변수 hour, minute, add_time에 각각 저장 hour, minute = map(int, input().split()) add_time = int(input()) #출력 조건에 맞도록 60분 단위로 시간에 추가하고, 24시를 0으로 초기화한다. hour += (minute + add_time)//60 minute = (minute + add_time)% 60 hour %= 24 print(hour, minute) ..

4673번: 셀프 넘버

4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net # 1.1 리스트 all_num에 1부터 10000까지 순서대로 넣고, # 1.2 생성자가 있는 숫자를 not_self_num 리스트에 넣는다. # 2. all_num과 not_self_num 리스트의 차집합은 셀프넘버의 집합(self_num)이다. # 3. self_num 리스트의 요소를 하나씩 출력한다. # 매개변수가 생성자인 수를 리턴하는 함수 def d(num): for cycle in str(num): ..

기초 100제 - 1080 : [기초-종합] 언제까지 더해야 할까?

1부터 더하는 합을 변수 't'에 담는다. 입력값을 받아 정수형으로 변환하고, 변수 'a'에 담는다. for 문에 범위를 1부터 a-1까지로 설정하고, t에 'i'값을 반복해서 담는다. (a-1까지 범위로 잡은 이유는 없다. 그냥 확실히 범위를 잡은 것임) if 문으로 합이 입력값보다 크거나 같게되면 for 문을 멈추고, 마지막에 더한 정수인 'i'를 출력한다. 테스트 케이스 결과: while 문을 사용한 풀이: 문제: 입력값이 1이나 2면 에러가 발생하거나 틀린 답이나온다. (range()에서 발생한 문제) while 문을 이용한 풀이는 올바르게 나온다. = for 문을 이용한 코드는 문제가 있다. ( 테스트 케이스는 통과했지만.)

기초 100제 - 1078 : [기초-종합] 짝수 합 구하기(설명)

짝수 값을 담을 변수 't'를 0으로 하고, 정수 1개를 입력받아 정수형으로 변환하여 'a'에 담는다. for 문을 이용하는데 range()를 이용하여 범위를 1부터 a까지로 한다. if 조건문으로 비교연산을 통해 2로 나눈 나머지가 0일 때만 t에 짝수 값을 추가한다. 마지막으로't'를 출력하면 1부터 입력된 수까지 짝수의 합이 출력된다. 테스트 케이스 결과:

기초 100제 - 1076 : [기초-반복실행구조] 문자 1개 입력받아 알파벳 출력하기(설명)

ord() 함수와 chr() 함수를 이용하여 코드를 구성한다. 먼저 영문자 한개를 입력받아 'a'에 저장한다. 영문자 'a'부터 입력받은 영문자까지 출력하기 위해 for문에서 'a'의 아스키코드인 97부터 문자를 아스키코드로 변환하는 ord 함수에 변수 'a' 값을 넣고, 1을 더한 값을 범위로 설정한다. for문에서 i 값을 문자로 변환하여 출력한다. 출력 형식에 맞게 'end=" "'를 추가해준다. 테스트 케이스 결과:

반응형