blognavercomcheetah254의 등록된 링크

 blognavercomcheetah254로 등록된 티스토리 포스트 수는 56건입니다.

[DB] select 쿼리 실행 결과 사용 및 응용(로그인처리) [내부링크]

[목차]01. select 쿼리 실행을 위한 객체 생성 및 실행02. select 쿼리 실행결과 사용03. 로그인 처리(session 이용) 01. select 쿼리 실행을 위한 객체 생성 및 실행ResultSet rs = null; rs = pstmt.executeQuery();️ ResultSet 인터페이스 데이터 타입으로 rs 객체참조변수를 선언하고 null값으로 초기화 한다.️ pstmt 객체참조변수에 할당된 주소를 찾아가서 메서드 영역 executeQuery() 메서드를 호출합니다.pstmt 객체참조변수에 할당된 주소c1️ preparedStatement 인터페이스로 부터 명령받은 com.mysql.cj.jdbc.result패키지내 ClientPreparedStatement 클래스 통해..

[DB] include, redirect 처리 / 검색 조건 설정 [내부링크]

[목차]01. include로 화면 구현02. redirect로 화면 연결03. 검색 조건 설정04. redirect로 화면 연결 01. include로 화면 구현회원전체조회 리스트 화면에 include로 회원가입 폼과 연결한다. ️ 회원가입 화면 + 리스트 화면[코드예제] user_list.jsp 회원리스트 아이디 비밀번호 권한 이름 이메일 수정 삭제 수정버튼 삭제버튼 02. redirect로 화면 연결회원가입, 수정, 삭제 후 화면 처리를 user_list.jsp 로 리다이렉트 한다.[코드예제] user_(insert, update, delete)_action.jsp// 각각 action.jsp 자바코드 맨 마지막 부분에 리다이렉트 코드 추가 // user_list.jsp로 리다이렉트 respo..

[DB] select, update, delete 쿼리 실행 결과 사용 및 응용(수정, 삭제) [내부링크]

[목차]01. select 쿼리로 회원 수정 화면02. update 쿼리로 회원 수정 처리03. delete 쿼리로 회원 삭제 처리 01. select 쿼리로 회원 수정 화면1️ 수정버튼 클릭 시 해당 회원의 아이디를 불러온다. 2️ 객체 생성 단계에서 select 쿼리 사용 (SELECT 컬럼명 FROM 테이블명 WHERE 조건)3️ 불러온 회원 아이디를 쿼리에 넣어준다.4️ 쿼리 실행 후 실행결과를 사용한다.5️ 수정화면 폼을 만들고 value값에 쿼리 실행 결과를 넣어준다.[코드예제] user_update_form.jsp 수정화면 아이디 비밀번호 권한 이름 이메일 02. update 쿼리로 회원 수정 처리1️ 수정 화면 폼에서 데이터 값을 받아온다. 2️ 객체 생성 단계에서 upda..

[DB] select 쿼리 실행 결과 사용 및 응용(회원전체조회) [내부링크]

[목차]01. select 쿼리 실행을 위한 객체 생성 및 실행02. select 쿼리 실행결과 사용03. 회원전체조회 화면 구현 01. select 쿼리 실행을 위한 객체 생성 및 실행ResultSet rs = null; rs = pstmt.executeQuery();️ ResultSet 인터페이스 데이터 타입으로 rs 객체참조변수를 선언하고 null값으로 초기화 한다.️ pstmt 객체참조변수에 할당된 주소를 찾아가서 메서드 영역 executeQuery() 메서드를 호출합니다.pstmt 객체참조변수에 할당된 주소c1️ preparedStatement 인터페이스로 부터 명령받은 com.mysql.cj.jdbc.result패키지내 ClientPreparedStatement 클래스 통해 생성된 객..

[DB] insert 쿼리 실행 결과 사용 및 응용(회원가입처리) [내부링크]

[목차]01. 회원가입 화면02. 회원가입 처리03. 최종 화면 01. 회원가입 화면1. 회원가입 폼 만들기 (id, pw, level, name, email) 2. 회원가입 처리화면으로 경로 설정[코드예제] user_insert_form.jsp 아이디 비밀번호 권한 이름 이메일 02. 회원가입 처리1. JDBC 프로그램 실행 7단계 2. DB연결 시 필요한 정보 DB 종류(mysql), ip(localhost), 포트번호(3306), DB명(dbhooni), ID(idhooni), PW(pwhooni) 3. mysql jar파일 가져오기[코드예제] user_insert_action.jsp 03. 최종 화면회원가입화면처리 후 데이터베이스 화면 tag : #DB #insert #쿼리 #회원가입 #JDB..

[CSS] position, 요소 순서, transform, transition, flex, grid, 미디어쿼리 속성들 [내부링크]

1 2 3 02. 요소가 쌓이는 순서우리가 화면에서 볼 수 있는 요소 중 어떤 요소가 사용자와 더 가깝게 있는지(더 위에 있는지) 결정하는 것입니다.조건1️ 요소에 position 속성과 값이 있는 경우에는 더 위에 쌓인다.2️ 모든 요소에 position 속성과 값이 있는 경우에는 z-index속성의 값이 더 높으면 위에 쌓인다.z-index 숫자가 높을수록 위에 쌓인다3️ 1,2 번까지 조건이 같은 경우에는 나중에 작성된 경우 위에 쌓인다. 03. 변환요소를 변환하는 속성입니다.항목c원근법, 이동, 크기, 회전, 기울임️ 요소를 이동시키는 함수 translate();️ 요소를 회전시키는 함수 rotate(deg); (degree각도) 04. 전환하나의 스타일을 완전히 다른 스타일로 바..

[CSS] color, border, margin, padding, box-sizing, background 속성들 [내부링크]

[목차]01. 색상 표현02. 박스 모델03. 여백을 지정하는 속성들04. 배경 01. 색상 표현색을 사용하는 모든 속성에 적용 가능합니다.1) 색상의 이름을 작성브라우저에서 제공하는 색상 이름을 입력한다.간단한 색상 표현은 가능하지만 명확한 특정 색상 표현은 브라우저에 따라서 달라질 수 있다. 2) Hex(Hexadecimal)16진수 색상 코드#으로 시작하며 가장 많이 사용한다. 3) RGB빛의 삼원색Red, Green, Blue 4) rgba빛의 삼원색 + 투명도(0~1) 02. 박스 모델html 요소의 기본적인 모양을 만드는 속성입니다. 요소의 너비, 높이, 내부 여백, 외부 여백 등1) 요소의 너비와 높이 (width, height)기본값 : auto, 브라우저가 너비를 계산 2) 요소의 최..

[CSS] 선택자, 우선순위, 상속, 기타 CSS 속성 [내부링크]

붉은색 붉은색 검은색 붉은색 (1) 이름은 기억하기 쉽고 명확한 이름을 작성합니다. (2) 이름은 절대로 숫자 또는 특수 기호로 시작하면 안됩니다. (3) 클래스 이름은 소문자로 작성하며 단어 뒤에 다른 단어가 나오면 _(언더바) 또는 -(대쉬)로 구분합니다. [코드예제] 기본 선택자 사과 딸기 블루베리 사과 사과 비빔밥 초밥 [코드예제] 기본 선택자 실습[html.html] 태그 선택자 태그 선택자 클래스 선택자 클래스 선택자 아이디 선택자 클래스 중복 가능 [main.css]@import url("./sub.css"); span { color: blueviolet; text-decoration: underline; background-color: aqua; } .main_div { backgroun..

[CSS] css 정의, 기초문법, 경로, 연결 방법 [내부링크]

index 입니다. HOME NOTICE LOGIN SIGNUP [notice.html] NOTICE 입니다. HOME NOTICE LOGIN SIGNUP [login.html] LOGIN 입니다. HOME NOTICE LOGIN SIGNUP [signup.html] SIGNUP 입니다. HOME NOTICE LOGIN SIGNUP 05. css 연결 방법 4가지1) 내장 방식웹 문서 안에 사용할 스타일을 정리하는 방식html 문서의 head 영역에 style 작성html 문서 내부에 작성하기 때문에 내장 방식 또는 내부 스타일 시트라고 부른다.장점별도로 css 파일을 작성할 필요 없이 내부에서 작성 가능단점css 내용이 많아지는 경우 HTML문서 내에서 한번에 처리하기 어렵다.웹 표준 : 프론트엔드 ..

[DB] JDBC 프로그램 순서 7단계 [내부링크]

[목차]01. mysql 드라이버 로딩02. Connection 객체로 DB 연결03. Query 실행을 위한 준비(객체 생성)04. Query 실행05. Query 실행결과 사용06. 객체, DB연결 종료 01. mysql 드라이버 로딩라이브러리 사용(mysql-connector-java-8.0.28.jar)cClass.forName(”com.mysql.jdbc.Driver”); 02. Connection 객체로 DB 연결Connection 객체 생성️ Connection interface 데이터 타입으로 conn 객체참조변수 선언객체 생성을 위한 변수값 세팅(ip, port번호, db명, db접속id/pw) ️ getConnection 메소드는 static으로 선언되어서객체 생성 없이 Drive..

[DB] 데이터 언어(DDL, DML, DCL) + TCL [내부링크]

[목차]01. 데이터 정의어(DDL)02. 데이터 조작어(DML)03. 데이터 제어어(DCL)04. 트랜잭션 제어어(TCL) 01. 데이터 정의어(DDL)데이터베이스를 구축하거나 수정할 목적으로 사용하는 언어입니다.명령어를 입력하는 순간 작업이 즉시 반영(Auto Commit) 되므로 사용시 주의명령어️ CREATE : 데이터베이스 객체(스키마, 테이블, 뷰 등) 생성-- 데이터베이스 생성 CREATE DATEBASE ‘DB명’; -- 테이블 생성 CREATE TABLE ‘테이블명’ ( ’속성명’ 타입, … ) ️ ALTER : 테이블 구조 변경종류 : ADD, ALTER, RENAME. MODIFY, DROP-- 컬럼 추가 ALTER TABLE ‘테이블명’ ADD COLUMN ‘컬럼명’ ‘속성값’..

[DB] DBMS 구축, DB Table 생성 및 활용 [내부링크]

[목차]01. MySQL, HeidiSQL 설치02. DB Table 생성 및 활용 01. MySQL, HeidiSQL 설치 MySQL 설치1️ https://dev.mysql.com/downloads/ 접속 후 Installer 설치(msi 파일)2️ Custom 셋업 설정3️ root 계정 비밀번호 설정4️ 설치 완료 후 서비스 실행 확인 HeidiSQL 설치chttps://www.heidisql.com/ 접속 후 설치 02. DB Table 생성 및 활용1️ 데이터베이스 관리자 root계정에 로그인한다.세션이름 규칙(약속) - 아이디_DB명_DBMS 2️ 데이터베이스, 일반 사용자 계정 생성쿼리 작성 후 F9로 실행 3️ 일반 사용자 계정으로 로그인root 계정에서 부여한 사용자..

[HTML] html 태그와 인라인, 블록, 인라인 블록 요소 [내부링크]

제목 내용 이름 안녕 안녕 안녕 안녕 [코드예제2] table 여행지 선정 지역 이름 대표 관광지 전라북도 전주시 전주 한옥 마을 덕진공원 한국스마트정보교육원 신시가지 군산시 선유도 군산대 경상북도 포항시 호미곶 포항 강원도 강릉시 강문해변 동해 테이블 실습2 1 2 3 4 5 6 7 8 9 1 2 3 4 5 8 9 1 3 4 5 6 7 2 3 6 7 8 1 2 3 4 8 2) input 요소c사용자가 데이터를 입력하는 요소입니다. type 속성으로 입력 받을 데이터 타입을 정할 수 있습니다. c속성종류1️ name 속성으로 해당 input의 이름을 명시2️ value 속성으로 해당 input의 초기값을 명시form 데이터를 서버로 전송하면 서버에서 받을 때 name데이터로 받는다. 실제 값은 v..

[HTML] 웹, html, 태그 요소와 속성 기초정리 [내부링크]

: 해당 페이지에 대한 정보를 서술하는 공간. 웹페이지에 단 하나만 존재. 브라우저 실행 화면에는 보이지 않는다. (설정 정보 작성 영역) ex) title, meta, link, style, script : 탭에 보이는 웹 페이지의 제목 표시 : 해당 문서에 대한 정보를 기술한다. ex) : 언어 설정c문자셋 종류️ ASCII (American Standard Code...) : 미국 정보 교환 표준 부호 ️ EUC : ASCII가 아닌 국가 별 문자 표현을 위해 만들었다. 중복되는 영역이 발생 (여러 문자셋 사용x) ex) EUC-kr, JP, CN ️ Unicode(중복되는 영역이 발생하는 문제를 해결) : 모든 문자를 표현할 수 있다. 하나의 문자셋 안에 전세계 모든 문자를 넣어서 사용한다..

[JSP] jsp와 java 메소드 선언 및 호출, jsp와 java 연결 후 화면 출력 [내부링크]

[목차]01. jspjava 메서드 선언 및 호출02. jspjava 연결 후 화면 출력 01. jspjava 메서드 선언 및 호출java 파일의 main 메서드 안에 코드를 가져온다. 객체 생성을 하려면 import 후 객체 생성이 가능하다. 리턴값이 있으면 화면에 출력이 가능하다.jsp와 javacmain 메서드를 포함한 클래스를 jsp라고 하자! [코드예제] AA01.jsp ️ AA01.java 의 main 메소드 안에 코드를 가져와서 안에 넣어준다. [코드예제] BB01_1.javapackage kr.or.ksmart.B; public class BB01_1 { public void a() { System.out.println("a 메소드 실행"); } }️ 해당 java파일을 jsp에..

[JAVA] 패키지/클래스 생성, 메서드 선언 및 호출 [내부링크]

[목차] 01. 패키지, 클래스 생성 02. 메서드 선언 및 호출 01. 패키지, 클래스 생성 패키지 + 클래스 생성 화면 [java코드] 패키지 : kr.or.ksmart.a / 클래스 : AA01 package kr.or.ksmart.a; public class AA01 { public static void main(String[] args) { (내용) } } 02. 메서드 선언 및 호출 메서드 선언과 호출은 어디에서 할까? 선언 : class block 안쪽에 method 블록 밖에 선언 호출 : main method block 안쪽에서 호출 [java코드] 하나의 클래스에 리턴없고 입력없는 메서드 선언 및 호출 package kr.or.ksmart.a; // class block = body..

[백준 25501번] 재귀의 귀재(파이썬) [내부링크]

문제 정휘는 후배들이 재귀 함수를 잘 다루는 재귀의 귀재인지 알아보기 위해 재귀 함수와 관련된 문제를 출제하기로 했다. 팰린드롬이란, 앞에서부터 읽었을 때와 뒤에서부터 읽었을 때가 같은 문자열을 말한다. 팰린드롬의 예시로 AAA, ABBA, ABABA 등이 있고, 팰린드롬이 아닌 문자열의 예시로 ABCA, PALINDROME 등이 있다. 어떤 문자열이 팰린드롬인지 판별하는 문제는 재귀 함수를 이용해 쉽게 해결할 수 있다. 아래 코드의 isPalindrome 함수는 주어진 문자열이 팰린드롬이면 1, 팰린드롬이 아니면 0을 반환하는 함수다. #include #include int recursion(const char *s, int l, int r){ if(l >= r) return 1; else if(s[l..

[백준 18870번] 좌표 압축(파이썬) [내부링크]

문제 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다. 출력 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다. 예제 입력 입력 1 5 2 4 -10 4 -9 입력 2 6 1000 999 1000 999 1000 999 예제 출력 출력 1 2 3 0 3 1 출력 2 1 0 1 0 1 0 풀이 이 문제는 리스트 ..

[백준 1181번] 단어 정렬(파이썬) [내부링크]

문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 예제 입력 13 but i wont hesitate no more no more it cannot wait im yours 예제 출력 i im it no but more wait wont yours cannot hesita..

[백준 11650번] 좌표 정렬하기(파이썬) [내부링크]

문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 예제 입력 5 3 4 1 1 1 -1 2 2 3 3 예제 출력 1 -1 1 1 2 2 3 3 3 4 풀이 이 문제는 좌표 x, y가 주어지면 x를 먼저 정렬하고, y를 정렬한다는 문제입니다. 만약 좌표 3개가 주어진다면 먼저 이 좌표를 리스..

[백준 2108번] 통계학(파이썬) [내부링크]

문제 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 1. 산술평균 : N개의 수들의 합을 N으로 나눈 값 2. 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 3. 최빈값 : N개의 수들 중 가장 많이 나타나는 값 4. 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. 출력 첫째 줄에는 산술평균을 출..

[백준 10989번] 수 정렬하기3(파이썬) [내부링크]

문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 10 5 2 3 1 4 2 3 5 1 7 예제 출력 1 1 1 2 2 3 3 4 5 5 7 풀이 이 문제는 계수 정렬을 이용하여 시간복잡도를 해결 할 수 있습니다. 계수 정렬은 0 리스트를 범위까지 미리 선언하고 인덱스를 이용하여 해당 숫자의 갯수를 체크합니다. (이 문제에서 조건은 10,000보다 작거나 같은 자연수라고 했네요.) 예를 들면 10개 숫자가 ..

[백준 2751번] 수 정렬하기2(파이썬) [내부링크]

문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 5 5 4 3 2 1 예제 출력 1 1 2 3 4 5 풀이 이 문제는 파이썬 내장함수인 sorted(), sys함수를 이용해서 시간복잡도를 해결 할 수 있습니다. 리스트안에 숫자들을 sorted()를 사용해서 정렬 sys.stdin.readline는 input을 대신해서 사용 sys.stdout.write는 print를 대신..

[백준 9020번] 골드바흐의 추측(파이썬) [내부링크]

문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. 예를 들면, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 11, 14 = 7 + 7이다. 10000보다 작거나 같은 모든 짝수 n에 대한 골드바흐 파티션은 존재한다. 2보다 큰 짝수..

[백준 4948번] 베르트랑 공준(파이썬) [내부링크]

문제 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) 자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 케이스는 n을 포함하는 한 줄로 이루어져 있다. 입력의 마지막에는 0이 주어진다. 출력 각 테스트 케이스에 대해서, n보다 크고..

[백준 1929번] 소수 구하기(파이썬) [내부링크]

문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 예제 입력 1 3 16 예제 출력 1 3 5 7 11 13 풀이 주어진 수 2개 사이에 소수를 하나씩 출력하면 되는건데요. 그렇다면 모든 수를 돌면서 1을 제외한 나누어 떨어지는 수가 있는지 없는지 확인하면 되네요. 하지만 이렇게 모든 수를 확인 하다보면 시간초과가 발생합니다. 시간초과를 해결하기 위해서 모든 수를 확인하는 방법보다 제곱근을 사용해서 모든 수의 절반만 확인하고 소수를 찾을 수 있어요. 만약 숫자가 18..

[백준 11653번] 소인수분해(파이썬) [내부링크]

문제 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 예제 입력 1 72 예제 출력 1 2 2 2 3 3 예제 입력 2 9991 예제 출력 2 97 103 풀이 소인수분해 : 1보다 큰 자연수를 소인수(소수인 인수)들만의 곱으로 나타내는 것 또는 합성수를 소수의 곱으로 나타내는 방법 1보다 크다고 했으니 2부터 시작하는 걸 생각하고, 그 중 나눠지는 가장 작은 수 부터 나눠주기를 반복합니다. 주어진 수가 72이고, 소인수분해를 한다고 하면 2 x 2 x 2 x 3 x 3이 됩니다. 소인수분해가 되는 과정은 ..

[백준 2581번] 소수(파이썬) [내부링크]

문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 입력 입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10,000이하의 자연수이며, M은 N보다 작거나 같다. 출력 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. 예제 입력 1 60 100 예제 출력 1 6..

[백준 1978번] 소수 찾기(파이썬) [내부링크]

문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 예제 입력 4 1 3 5 7 예제 출력 3 풀이 주어진 숫자 중 소수가 있는지 없는지 찾는 문제입니다. 소수 : 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수 1을 제외하면 자기 자신만을 약수로 가진다는 뜻이네요. 2~자기 자신까지 차례로 나눴을 때 나누어 떨어지는 수가 자기 자신 하나뿐입니다. 7을 예로 들면 7 % 2 = 1 7 % 3 = 1 7 % 4 = 3 7 % 5 = 2 7 % 6 = 1 7 % 7 = 0 나누어 떨어지는 ..

[백준 2839번] 설탕 배달(파이썬) [내부링크]

문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정..

[백준 2775번] 부녀회장이 될테야(파이썬) [내부링크]

문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 입력 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 ..

[백준 10250번] ACM호텔(파이썬) [내부링크]

문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모..

[백준 2869번] 달팽이는 올라가고 싶다(파이썬) [내부링크]

문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 예제 입력 입력 1 2 1 5 입력 2 5 1 6 입력 3 100 99 1000000000 예제 출력 출력 1 4 출력 2 2 출력 3 999999901 풀이 이 문제의 계산식을 구해보면 A :..

[백준 1193번] 분수찾기(파이썬) [내부링크]

문제 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 출력 첫째 줄에 분수를 출력한다. 예제 입력 입력 1 1 입력 2 2 입력 3 3 입력 4 4 입력 5 5 예제 출력 출력 1 1/1 출력 2 1/2 출력 3 2/1 출..

[백준 2292번] 벌집(파이썬) [내부링크]

문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 예제 입력 13 예제 출력 3 풀이 이 문제는 벌집 안에 수들의 규칙을 파악해내야 합니다. 처음에 1이 있고, 육각형 모양으로 6개의 숫..

[백준 1065번] 한수(파이썬) [내부링크]

문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 예제 입력 예제 1 110 예제 2 1 예제 3 210 예제 4 1000 예제 출력 출력 1 99 출력 2 1 출력 3 105 출력 4 144 풀이 등차수열 : 연속된 숫자의 차이가 일정 어떤 숫자가 주어졌을 때 그 숫자의 각 자리 수가 등차수열이 만족해야 합니다. 예를들면 123 숫자가 있으면 각 자리를 1..

[백준 4673번] 셀프 넘버(파이썬) [내부링크]

문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ... n을 d(n)의 생성자라..

[백준 4344번] 평균은 넘겠지(파이썬) [내부링크]

문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 예제 입력 5 5 50 50 70 80 100 7 100 95 90 80 70 60 50 3 70 90 80 3 70 90 81 9 100 99 98 97 96 95 94 93 91 예제 출력 40.000% 57.143% 33.333% ..

[백준 8958번] OX퀴즈(파이썬) [내부링크]

문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 출력 각 테스트 케이스마다 점수를 출력한다. 예제 입력 5 OOXXOXXOOO OOXXOOXXOO OXOXOXOXOXOXOX OOOOO..

[백준 5597번] 과제 안 내신 분(파이썬) [내부링크]

문제 X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오. 입력 입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)가 한 줄에 하나씩 주어진다. 출석번호에 중복은 없다. 출력 출력은 2줄이다. 1번째 줄엔 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하고, 2번째 줄에선 그 다음 출석번호를 출력한다. 예제 입력 3 1 4 5 7 9 6 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 예제 출력 2..

[백준 1546번] 평균(파이썬) [내부링크]

문제 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. 출력 첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대..

[백준 3052번] 나머지(파이썬) [내부링크]

문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다. 출력 첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다. 예제 입력 1 1 2 3 4 5 6 7 8 9 10 각 수를 42로 나눈 나머지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 10이다. 예제 출력 1 10 풀이 이 문제는 주어진 10개의 수를 42..

[백준 1439번] 뒤집기(파이썬) [내부링크]

문제 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것이다. 뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미한다. 예를 들어 S=0001100 일 때, 1. 전체를 뒤집으면 1110011이 된다. 2. 4번째 문자부터 5번째 문자까지 뒤집으면 1111111이 되어서 2번 만에 모두 같은 숫자로 만들 수 있다. 하지만, 처음부터 4번째 문자부터 5번째 문자까지 문자를 뒤집으면 한 번에 0000000이 되어서 1번 만에 모두 같은 숫자로 만들 수 있다. 문자열 S가 주어졌을 때, 다솜이가 해야하는 행동의 최소 횟수를 출력하시오. 입력 첫째 줄..

[백준 1715번] 카드 정렬하기(파이썬) [내부링크]

문제 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40장의 묶음이 있다면 10장과 20장을 합친 뒤, 합친 30장 묶음과 40장을 합친다면 (10 + 20) + (30 + 40) = 100번의 비교가 필요하다. 그러나 10장과 40장을 합친 뒤, 합친 50장 묶음과 20장을 합친다면 (10 + 40) + (50 + 20)..

[백준 1946번] 신입사원(파이썬) [내부링크]

문제 언제나 최고만을 지향하는 굴지의 대기업 진영 주식회사가 신규 사원 채용을 실시한다. 인재 선발 시험은 1차 서류심사와 2차 면접시험으로 이루어진다. 최고만을 지향한다는 기업의 이념에 따라 그들은 최고의 인재들만을 사원으로 선발하고 싶어 한다. 그래서 진영 주식회사는, 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발한다는 원칙을 세웠다. 즉, 어떤 지원자 A의 성적이 다른 어떤 지원자 B의 성적에 비해 서류 심사 결과와 면접 성적이 모두 떨어진다면 A는 결코 선발되지 않는다. 이러한 조건을 만족시키면서, 진영 주식회사가 이번 신규 사원 채용에서 선발할 수 있는 신입사원의 최대 인원수를 구하는 프로그램을 작성하시오. 입력 첫째 줄..

[백준 10610번] 30 (파이썬) [내부링크]

문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라. 입력 N을 입력받는다. N는 최대 10⁵개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. 출력 미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는다면, -1을 출력하라. 예제 입력 1 102 예제 출력 1 210 예제 입력 2 2931 예제 출력 2 -1 풀이 이 문제는 제시된 숫자들을 섞에서 30의 배수가 되는 가장 큰 수를 만들면 됩니다. 30배수는 10배수와 3배수의 조합으로 생각할 수 있는..

[백준 13305번] 주유소(파이썬) [내부링크]

문제 어떤 나라에 N개의 도시가 있다. 이 도시들은 일직선 도로 위에 있다. 편의상 일직선을 수평 방향으로 두자. 제일 왼쪽의 도시에서 제일 오른쪽의 도시로 자동차를 이용하여 이동하려고 한다. 인접한 두 도시 사이의 도로들은 서로 길이가 다를 수 있다. 도로 길이의 단위는 km를 사용한다. 처음 출발할 때 자동차에는 기름이 없어서 주유소에서 기름을 넣고 출발하여야 한다. 기름통의 크기는 무제한이어서 얼마든지 많은 기름을 넣을 수 있다. 도로를 이용하여 이동할 때 1km마다 1리터의 기름을 사용한다. 각 도시에는 단 하나의 주유소가 있으며, 도시 마다 주유소의 리터당 가격은 다를 수 있다. 가격의 단위는 원을 사용한다. 예를 들어, 이 나라에 다음 그림처럼 4개의 도시가 있다고 하자. 원 안에 있는 숫자는..

[백준 1789번] 수들의 합(파이썬) [내부링크]

문제 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 입력 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. 출력 첫째 줄에 자연수 N의 최댓값을 출력한다. 예제 입력 1 200 예제 출력 1 19 풀이 이 문제는 자연수의 합이 주어질 때 서로다른 N개의 자연수들의 합으로 만들어 질 수 있는 N 갯수의 최댓값을 구하는 문제입니다. 예를 들어서 15가 주어졌을 때 14 + 1 = 15 (2개) 12 + 2 + 1 =15 (3개) 9 + 3 + 2 + 1 = 15 (4개) 5 + 4 + 3 + 2 + 1 =15 (5개) 서로다른 자연수들의 합으로 만들어 질 수 있는 갯수의 최댓값은 5개 입니다. 서로다른 N개의 자연수의 갯수는 1부터 시작..

[백준 10162번] 전자레인지(파이썬) [내부링크]

문제 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 각각 5분, 1분, 10초이다. 냉동음식마다 전자레인지로 요리해야할 시간 T가 초단위로 표시되어 있다. 우리는 A, B, C 3개의 버튼을 적절히 눌러서 그 시간의 합이 정확히 T초가 되도록 해야 한다. 단 버튼 A, B, C를 누른 횟수의 합은 항상 최소가 되어야 한다. 이것을 최소버튼 조작이라고 한다. 만일 요리시간이 100초라고 하면(T=100) B를 1번, C는 4번 누르면 된다. 이와 다르게 C를 10번 눌러도 100초가 되지만 이 경우 10번은 최소 횟수가 아니기 때문이 답이 될 수 없다. ..

[백준 2217번] 로프(파이썬) [내부링크]

문제 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구해내는 프로그램을 작성하시오. 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를 골라서 사용해도 된다. 입력 첫째 줄에 정수 N이 주어진다. 다음 N개의 줄에는 각 로프가 버틸 수..

[백준 5585번] 거스름돈(파이썬) [내부링크]

문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 한줄로 이루어져있고, 타로가 지불할 돈(1 이상 1000미만의 정수) 1개가 쓰여져있다. 출력 제출할 출력 파일은 1행으로만 되어 있다. 잔돈에 포함된 매수를 출력하시오. 예제 입력 1 380 예제 출력 1 4 풀이 이 문제에선 1000엔 지폐를 냈을때 거스름돈을 줄때 가장 적은 잔돈 개수를 구하는 겁니다. 예제에서 380엔 일때 거스름돈은 1000-380 = 6..

[백준 1541번] 잃어버린 괄호(파이썬) [내부링크]

문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다. 출력 첫째 줄에 정답을 출력한다. 예제 입력 1 55-50+40 예제 출력 1 -35 풀이 이 문제는 괄호를 적절히 쳐서 제시된 식의 ..

[백준 1026번] 보물(파이썬) [내부링크]

문제 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0] × B[0] + ... + A[N-1] × B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다. 출력 첫째 줄에 S의 최솟값을 출력한다. 예제..

[백준 1931번] 회의실 배정(파이썬) [내부링크]

문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 2³¹-1보다 작거..

[백준 11047번] 동전 0 (파이썬) [내부링크]

문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 예제 입력 1 10 4200 1 5 10 50 100 500 1000 5000 10000 50000 예제 출력 1 6 예제 입력 2 10 4790 1 5 10 50 ..

[백준 11399번] ATM 풀이 (파이썬) [내부링크]

문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3+1+4 = 8분이 필요하게 된다..