옹실이의 개발이야기

알고리즘 27

[백준] 알고리즘 #2562 : 최댓값 (Python)

문제 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다. 풀이 1. 값을 담을 배열을 만든다. 2. for문을 이용해 총 9개의 값을 입력받는다. 3. 입력값을 배열에 담는다. 4. max()함수를 이용해 배열의 최대값을 출력한다 5. index()함수를 이용해 배열 최대값의 in..

알고리즘 2023.05.01

[백준] 알고리즘 #10818 : 최소, 최대 (Python)

문제 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. 출력 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다. 풀이 1. 정수 N 입력받는다. 2. N개의 정수를 입력받아 배열(n_list)에 담는다 3. 배열(n_list)을 오름차순으로 정렬한다. 4. 배열의 0번째 값과 배열길이 - 1 값을 출력한다. (5개를 입력받으면, 배열의 0번째부터 순서대로 0, 1, 2, 3, 4 index에 담기므로 마지막 배열의 index..

알고리즘 2023.05.01

[백준] 알고리즘 #10952 : A+B - 5 (Python)

문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 입력의 마지막에는 0 두 개가 들어온다. 출력 각 테스트 케이스마다 A+B를 출력한다. 풀이 1. while문을 이용해 무한 루프 돌린다. 2. 두 수 A, B를 입력받는다. 3. A, B의 합이 0이 아니라면 두 수의 합을 출력한다. 4. A, B의 합이 0이라면 while문을 빠져나간다. 1 2 3 4 5 6 7 while(1): a, b = map(int, input().split()) if (a+b) != 0 : print(str(a+b)) else : br..

알고리즘 2023.04.30

[백준] 알고리즘 #2439 : 별 찍기 - 2 (Python)

문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 풀이 1. 별 찍을 갯수 N을 입력받는다. (N = 5) 2. 1부터 N+1 까지 for문 돌린다. (for문은 1부터 5 까지 돌게 된다) 3. ①첫번째 for문 - i : 1, N : 5 --> 공백(" ") 4개 + 별("*")1개 --> 공백(" ") X 4(5-1) + 별("*") X 1개(1) ②두번째 for문 - i : 2, N : 5 --> 공백(" ") 3개 + 별("*") 2개i --> 공백(" ") X 3개(5-2) + 별(..

알고리즘 2023.04.30

[백준] 알고리즘 #25314 : 코딩은 체육과목 입니다 (Python)

문제 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ 책을 열심히 읽었던 혜아는 간단히 두 수를 더하는 코드를 칠판에 적었다. 코드를 본 면접관은 다음 질문을 했다. “만약, 입출력이 N바이트 크기의 정수라면 프로그램을 어떻게 구현해야 할까요?” 혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다. 책에는 long int는 4바이트 정수까지 저장할 수 있는 정수 자료형이고 long long int는 8바이트 정수까지 저장할 수 있는 정수 자료형이라고 적혀 있었다. 혜아는 이런 생각이 들었다. “int 앞에 long을 하나씩 더 붙일 때마다 4바이트씩 저장..

알고리즘 2023.04.30

[백준] 알고리즘 #2480 : 주사위 세개 (Python)

문제 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받게..

알고리즘 2023.04.30

[백준] 알고리즘 #2525 : 오븐시계 (Python)

문제 KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다. 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다. 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진..

알고리즘 2023.04.30