목록전체 글 (18)
냠냠뇸
문제 어떤 나라에 N개의 도시가 있다. 이 도시들은 일직선 도로 위에 있다. 편의상 일직선을 수평 방향으로 두자. 제일 왼쪽의 도시에서 제일 오른쪽의 도시로 자동차를 이용하여 이동하려고 한다. 인접한 두 도시 사이의 도로들은 서로 길이가 다를 수 있다. 도로 길이의 단위는 km를 사용한다. 처음 출발할 때 자동차에는 기름이 없어서 주유소에서 기름을 넣고 출발하여야 한다. 기름통의 크기는 무제한이어서 얼마든지 많은 기름을 넣을 수 있다. 도로를 이용하여 이동할 때 1km마다 1리터의 기름을 사용한다. 각 도시에는 단 하나의 주유소가 있으며, 도시 마다 주유소의 리터당 가격은 다를 수 있다. 가격의 단위는 원을 사용한다. 예를 들어, 이 나라에 다음 그림처럼 4개의 도시가 있다고 하자. 원 안에 있는 숫자는..
문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를..
- input() 이용 1. 정수형 하나만 받을 때 5 n = int(input()) 2. 공백으로 구분되는 정수형을 여러개 받아 리스트로 만들 때 10 20 30 40 50 data = list(map(int,input().split())) cf. (갯수가 정해진) 적은 수를 받을때는 map으로만 감싸서 받을 수 있다. 3 5 7 n, m, k = map(int,input().split()) - readline() 이용 (입력의 갯수가 많은 경우) input() 함수는 동작 속도가 느리기 때문에입력받는 데이터의 갯수가 많은 경우 sys 라이브러리 내 정의되어 있는sys.stdin.readline() 함수를 이용할 수 있다.해당 함수는 input() 처럼 한 줄씩 입력받기 위해 사용한다. import s..
1. 배열 1-1. 배열의 선언과 생성 배열은 다음과 같은 두가지 방법으로 선언할 수 있다. 1) 타입[ ] 변수이름; int[] score; String[] name; 2) 타입 변수이름[ ]; int score[]; String name[]; 배열을 선언한 다음에는 값을 저장할 수 있는 공간을 만들기 위해 배열생성과정을 다음과 같이 거친다. 타입[ ] 변수이름; -> 배열선언 변수이름 = new 타입[길이] -> 배열생성 int[] score; score = new int[5]; //int 타입 값 5개를 저장가능한 배열생성 참고로 길이가 0인 배열도 사용 가능하다. 1-2. 배열의 길이와 인덱스 age[2] = 28; // 배열 age의 3번째 요소에 28을 저장한다. int value = scor..
1. 조건문 (if, switch) 1-1. if문 if (조건식) { // 조건식이 참(true)일 때 수행될 문장들을 적는다. } if문에 사용되는 조건식은 일반적으로 비교연산자와 논리연산자로 구성된다. 또한 괄호 내 문장이 하나 뿐일때는 괄호를 생략할 수 있다. 1-2. if-else문 if (조건식) { // 조건식이 참일때 수행할 문장 } else { // 조건식이 거짓일때 수행할 문장 } 1-3. if-else if문 if (조건식1) { // 조건식1이 참일때 수행되는 문장 } else if (조건식2) { // 조건식2이 참일때 수행되는 문장 } else if (조건식3) { // 조건식3이 참일때 수행되는 문장 } else { // 위의 어느 조건식도 만족하지 않을때 수행되는 문장 } 1..
문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작..

문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 내 답안 n=int(input()) m=str(n) num="" many=[] if len(m)==1 or len(m)==2: print(n) elif len(m)==3: for i in range(100,n+1): num=str(i) a=int(num[0]) b=int(num[1]) c=int(num[2])..
1. 연산자(operator) 1-1. 연산자와 피연산자 연산자(operator) : 연산을 수행하는 기호 (+ - * / 등) 피연산자(operand) : 연산자의 작업 대상 (변수, 상수, 리터럴, 수식) 연산자는 피연산자로 연산을 수행하고 나면 항상 결과값을 반환한다. 1-2. 연산자의 종류 종류 연산자 산술 연산자 + = * / % 비교 연산자 > =
1. 기본형 1-1. 논리형 (boolean) boolean형 변수에는 true 나 false 중 하나를 저장할 수 있으며 기본값(default)은 false이다. 보통 논리구현에 자주 사용된다. boolean power = true; boolean checked = False; //에러. 대소문자 구분 필요. 1-2. 문자형 (char) char형은 문자를 저장하기 위한 변수를 선언할 때 사용되며,사실 문자가 아닌 '문자의 유니코드(정수)'가 저장된다.그래서 문자 리터럴 대신 문자의 유니코드를 직접 저장 할 수 있어, 아래의 두문장은 같은 결과를 얻는다. char ch = 'A'; char ch = 65; 만일 어떤 문자의 유니코드를 알고 싶으면 char형 변수에 저장된 값을 정수형(int)으로 반환하..
1.변수 1-1. 변수의 선언과 초기화 변수란 "단 하나의 값을 저장할 수 있는 메모리 공간"을 뜻하며 선언 및 초기화 방법은 다음과 같다. int age; 변수타입(int)뒤에 변수이름(age)을 지정해준다. 변수를 선언한 이후부터는 쓰레기값(garbage value)이 남아있는것을 막기위해 대입연산자 '='를 사용하여 초기화를 시켜줘야한다. int age=28; 해당 코드는 age 변수에 28로 초기화 해준 모습이다. 변수는 이처럼 한줄에 하나씩 선언하는것이 보통이지만 int a, b; int x = 0, y = 0; 이렇게 타입이 같은경우 콤마',' 구분자로 여러변수를 한 줄에 선언하기도 한다. 예제 class VarEx1{ public statics void main(String[] args){ ..