본문 바로가기

분류 전체보기

(164)
파이썬 코드업 기초100제 1096 : [기초-2차원배열] 바둑판에 흰 돌 놓기(설명) 문제 설명 기숙사 생활을 하는 학교에서 어떤 금요일(전원 귀가일)에는 모두 집으로 귀가를 한다. 오랜만에 집에 간 영일이는 아버지와 함께 두던 매우 큰 오목에 대해서 생각해 보다가 "바둑판에 돌을 올린 것을 프로그래밍 할 수 있을까?"하고 생각하였다. 바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때, n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보자. 참고 가로번호, 세로번호를 사용할 수 있는 2차원 배열을 사용하면 이러한 형태를 쉽게 기록하고 사용할 수 있다. 물론 더 확장한 n차원 배열도 만들 수 있다. 예시 int n, i, j, x, y; int a[20][20]={}; scanf("%d", &n); for(i=1; i
파이썬 코드업 기초100제 1095 : [기초-1차원배열] 이상한 출석 번호 부르기3(설명) 문제 설명 정보 선생님은 오늘도 이상한 출석을 부른다. 영일이는 오늘도 다른 생각을 해보았다. 출석 번호를 다 부르지는 않은 것 같은데... 가장 빠른 번호가 뭐였지? 출석 번호를 n번 무작위로 불렀을 때, 가장 빠른 번호를 출력해 보자. 참고 배열에 순서대로 기록해 두면, 기록된 내용을 모두 검사해 가장 작은 값을 찾아내면 된다. 그런데, 가장 작은 값은 어떻게 어떤 것과 비교하고 찾아야 할까? 정답 a = input() bs = input().split() min=int(bs[0]) for b in bs: if(int(b)
파이썬 코드업 기초100제 1094 : [기초-1차원배열] 이상한 출석 번호 부르기2(설명) 문제 설명 정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다. 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부르는데, 영일이는 선생님이 부른 번호들을 기억하고 있다가 거꾸로 불러보는 것을 해보고 싶어졌다. 출석 번호를 n번 무작위로 불렀을 때, 부른 번호를 거꾸로 출력해 보자. 참고 배열에 순서대로 기록해 두고, 기록된 내용을 거꾸로 출력하면 된다. 예시 int n, i; int a[1000]={}; scanf("%d", &n); //개수 입력 받기 for(i=1; i=1; i--) printf("%d ", a[i]); //i 번 배열에 저장되어 있는 값 출력하기 정답 a = int(input()) bs = input().split() for i in range(a-1,-1,..
파이썬 코드업 기초100제 1093 : [기초-1차원배열] 이상한 출석 번호 부르기1(설명) 문제 설명 정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다. 선생님은 출석부를 보고 번호를 부르는데, 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다. 그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러 이름과 얼굴을 빨리 익히려고 하는 것이다. 출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자. 참고 각 번호가 불린 횟수를 기록하고 출력하기 위해 변수 23개를 선언할 수도 있다. 하지만 C언어에서는 같은 이름에 번호를 붙여 사용하는 배열(array)을 사용할 수 있다. 이는 마치 아파트의 동 호수(예를 들어 a동 101호)와 같이 번호를 붙여 집을 구분하는 것과 비슷하다. 예를 들어 a동 101호를 다르게 표..
파이썬 코드업 기초100제 1092 : [기초-종합] 함께 문제 푸는 날(설명) 문제 설명 온라인 채점시스템에는 초등학생, 중고등학생, 대학생, 대학원생, 일반인, 군인, 프로그래머, 탑코더 등 아주 많은 사람들이 들어와 문제를 풀고 있는데, 실시간 채점 정보는 메뉴의 채점기록(Judge Status)을 통해 살펴볼 수 있다. 자! 여기서...잠깐.. 같은 날 동시에 가입한 3명의 사람들이 온라인 채점시스템에 들어와 문제를 푸는 날짜가 매우 규칙적이라고 할 때, 다시 모두 함께 문제를 풀게 되는 그날은 언제일까? 예를 들어 3명이 같은 날 가입/등업하고, 각각 3일마다, 7일마다, 9일마다 한 번씩 들어온다면, 처음 가입하고 63일 만에 다시 3명이 함께 문제를 풀게 된다. 갑자기 힌트? 왠지 어려워 보이지 않는가? 수학에서 배운 최소공배수를 생각한 사람들도 있을 것이다. 하지만, ..
파이썬 코드업 기초100제 1091 : [기초-종합] 수 나열하기3 문제 설명 어떤 규칙에 따라 수를 순서대로 나열한 것을 수열이라고 한다. 예를 들어 1 -1 3 -5 11 -21 43 ... 은 1부터 시작해 이전에 만든 수에 -2를 곱한 다음 1을 더해 다음 수를 만든 수열이다. 이런 이상한 수열을 알게 된 영일이는 또 궁금해졌다. "그럼.... 13번째 나오는 수는 뭘까?" 영일이는 물론 수학을 아주 잘하지만 이런 문제는 본 적이 거의 없었다... 그래서 프로그램을 만들어 더 큰 수도 자동으로 계산하고 싶어졌다. 시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때, n번째 수를 출력하는 프로그램을 만들어보자. 정답 a,b,c,d = map(int,input().split()) count=1 num=a while(count
파이썬 백준 그리디 알고리즘 5585 거스름돈 문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. 예를 들어 입력된 예1의 경우에는 아래 그림에서 처럼 4개를 출력해야 한다. 입력 입력은 한줄로 이루어져있고, 타로가 지불할 돈(1 이상 1000미만의 정수) 1개가 쓰여져있다. 출력 제출할 출력 파일은 1행으로만 되어 있다. 잔돈에 포함된 매수를 출력하시오. 풀이 동전의 단위로 보아 잔돈을 주지 못하는 경우는 없다. 문제가 천원을 냈을 때 거스름돈을 어떻게 주는 것이므로 1..
파이썬 백준 그리디 알고리즘 2839 설탕 배달 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정..