Programming/Algorithm 237

[백준] #2167 2차원 배열의 합 python

https://www.acmicpc.net/problem/2167 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net 📕 설명 📕 2차원 배열에 대해 접근하기 위해서 아래와 같이 2중 for문을 이용했다. 그리고 덧셈 부분에 대해 indexing으로 접근했다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N, M = map(int, input().split()) li = [] dp = [[0] * (M + 1) for _ in range(N + 1)] for _ in range(N): li.appen..

[백준] #1094 막대기 python

https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net 📕 설명 📕 입력받은 값 X에 대해서, while문과 for문을 통해 1, 2, 4, 8, 16, 32, 64 값을 역순으로 하나씩 나눠지는 것을 count한다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 X = int(input()) X_num = [64, 32, 16, 8, 4, 2, 1] count = 0 while X > 0: for target in X_num: if X // target == 1:..

[백준] #1522 문자열 교환 python

https://www.acmicpc.net/problem/1522 1522번: 문자열 교환 a와 b로만 이루어진 문자열이 주어질 때, a를 모두 연속으로 만들기 위해서 필요한 교환의 회수를 최소로 하는 프로그램을 작성하시오. 이 문자열은 원형이기 때문에, 처음과 끝은 서로 인접해 www.acmicpc.net 📕 설명 📕 문자열의 형태를 왼쪽에서부터 생각하여 풀이하였다. 원형의 형태이므로 posit을 왼쪽부터로 생각하여, 만약 오른쪽에 인덱스가 S의 길이를 넘어가면 다시 원형임을 고려하여 처음부터 대입하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 import math S = list(input()) a_count = S.count('a') result = math.inf posit = 0 while posit < ..

[백준] #1302 베스트셀러 python

https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 📕 설명 📕 python의 Counter library를 사용하여 풀이했다. book_str list에 해당 문자열들을 넣고, 해당 문자열들에 대한 가장 많이 팔린 책들의 값을 most_sold_count에, most_sold_book_list에 most_sold_count 값을 가지는 문자열이 여러 개가 있을 경우를 감안하여 list로 생성하여 반영하였다. 그리고 iteration을 통해..

[백준] #24267 알고리즘 수업 - 알고리즘의 수행 시간 6

https://www.acmicpc.net/problem/24267 24267번: 알고리즘 수업 - 알고리즘의 수행 시간 6 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 📕 설명 📕 등차가 1이고 첫째항이 1, 끝항이 1 ~ N-2인 수를 계속해서 더하였다. 처음에 이중 for문으로 구성했다가, 시간 초과가 나왔다. 그래서 아래와 같이 등차수열의 합공식으로 수정하였더니 통과했다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N = int(input()) result = 0 for i in range(1,N): result += i * (i..

[백준] #24266 알고리즘 수업 - 알고리즘의 수행 시간 5

https://www.acmicpc.net/problem/24266 24266번: 알고리즘 수업 - 알고리즘의 수행 시간 5 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 📕 설명 📕 이전 문제와 달리 이번에는 N ** 3 에 비례한다. 그리고, 두 번째 줄 출력은 3이다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 print(int(input())**3) print(3)

[백준] #24265 알고리즘 수업 - 알고리즘의 수행 시간 4

https://www.acmicpc.net/problem/24265 24265번: 알고리즘 수업 - 알고리즘의 수행 시간 4 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 📕 설명 📕 이전 문제와 달리 이번에는 등차수열의 합공식에 비례한다. 따라서, 첫째항이 1, 등차가 1, 마지막 항이 N-1이다. 이를 이 공식에 대입하면, N * (N - 1) // 2의 값을 얻을 수 있다. 그리고, 두 번째 줄 출력은 2이다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N = int(input()) print(N*(N-1)//2) print(2)

[백준] #24264 알고리즘 수업 - 알고리즘의 수행 시간 3

https://www.acmicpc.net/problem/24264 24264번: 알고리즘 수업 - 알고리즘의 수행 시간 3 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 📕 설명 📕 이전 문제와 달리 이번에는 N ** 2 에 비례한다. 그리고, 두 번째 줄 출력은 2이다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 print(int(input())**2) print(2)

[백준] #24263 알고리즘 수업 - 알고리즘의 수행 시간 2

https://www.acmicpc.net/problem/24263 24263번: 알고리즘 수업 - 알고리즘의 수행 시간 2 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 📕 설명 📕 이전 문제와 달리 이번에는 N에 비례한다. 그리고, 두 번째 줄 출력은 1이다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 print(input()) print(1)

[백준] #24262 알고리즘 수업 - 알고리즘의 수행 시간 1

https://www.acmicpc.net/problem/24262 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 📕 설명 📕 재미있는 문제다. 오래 생각했지만,, 참 그럴 필요 없었다. 문제의 코드1의 내용을 보면, n회 돌지 않는다. 코드는 단 한 번 돈다. 그래서 답은 다음과 같다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 print(1) print(0)