Koala - 5기

from collections import Counter list666 = [str(i)+'666' for i in range(10000)] addtemp = [] for _ in list666: #모든 리스트의 수에 대해 count6 = Counter(_) # counter로 각 6의 갯수를 찾음 if int(count6['6'])>= 3 & ('666' in _)==True: #6의 갯수가 666인 3개보다 많다면 temlist= _.split('666',1)#666기준으로 앞 뒤로 나눠 리스트 생성 if(temlist[1] != ''): addcount = 10 **(len(temlist[1])) for i in range(addcount): addtemp.append(''.join(temlist[..
문제 링크 https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 풀이 배열의 인덱스(n이 3이라면 0, 1, 2)를 가지고 만들 수 있는 모든 순열(= 정수의 순서를 바꾸는 역할)을 구합니다. 순열을 구하기 위해 itertools의 permutations 함수를 사용했습니다. 이중 포문을 돌면서 최댓값을 구하게 되는데, i[j] 와 i[j+1]을 통해 배열의 인덱스를 가지고 옵니다. arr[i[j]] 와 같은 형식으로 배열에 들어있는 정수값을 불러와 abs함수를 ..
https://www.acmicpc.net/problem/4458 4458번: 첫 글자를 대문자로 첫째 줄에 줄의 수 N이 주어진다. 다음 N개의 줄에는 문장이 주어진다. 각 문장에 들어있는 글자의 수는 30을 넘지 않는다. 모든 줄의 첫 번째 글자는 알파벳이다. www.acmicpc.net 문제 분석 이 문제는 n개의 문장을 입력받아 각 문장의 첫 글자를 대문자로 변환하여 출력하는 문제이다. 코드 n = int(input()) for i in range(n): sentence = input() char = sentence[0].upper() print("{}{}".format(char,sentence[1:])) 문제풀이 먼저 n개의 줄을 입력 받기 위해 n을 정수형으로 받아준다. 그 후 n만큼 반복하는..
2675번의 문자열 반복 문제를 풀어보았다. 문제를 요약 하자면 처음으로 반복할 문자열 개수(2개) 가 주어지고, 그다음 부터 각각 반복할 문자열 개수(3,5)와 해당 문자열(ABC, /HTP)가 주어지는 것 같다. 먼저 반복할 문자열 개수를 배열로 받고, 그 수만큼 생성한 2차원 배열의 인덱스에 각각 저장한 후, 출력해주는 형식으로 코드를 작성해 보았다.
문제 동규는 세수를 하다가 정렬이 하고싶어졌다. 숫자 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어 졌다. 숫자 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오. 입력 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. 출력 제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다. 예제 입력 1 복사 3 1 2 예제 출력 1 복사 1 2 3 [ 문제분석 ] 숫자 세 개를 입력받으면 오름차순으로 출력한다. [ 코드 ] [ 문제풀이 ] 입력받은 세 수를 A 행렬에 저장한다. 문제에서 숫자는 3개라고 했으므로 A 행렬의 크기는 정해져있다. for문을 이용해 세 수를 A 행렬로 받..
https://www.acmicpc.net/problem/13752 문제분석 처음에 n값을 입력받는다. 이후 for문을 이용해 '=' 값을 반복해 출력할 k값을 n번 입력받고, 출력한다. 코드 n = int(input()) for i in range(n): k = int(input()) print('='*k) 문제풀이 스터디 하기 전, C언어만 사용해서 백준 문제들을 풀었었다. C언어가 파이썬에 비해 구동속도가 빠르다는 장점이 있지만, 문자열을 이용하는 문제풀이는 파이썬에 비해 너무 어려웠다. 파이썬에선 print문 안에 문자와 정수간의 곱셈을 할 수 있다는, 아주 편리한 방법을 알게 되었다. 앞서 문제분석에 했던 것과 같이 print문 안에서 '='*k 구문만 주의깊게 사용하면 큰 문제 없이 풀 수 있다.
https://www.acmicpc.net/problem/11022 11022번: A+B - 8 각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다. www.acmicpc.net 문제분석 계산해야 될 T의 개수를 입력받고, 각각의 줄에서 입력받는 두 정수의 합을 출력하는 문제이다. 입력받는 두 정수의 사이에는 공백이 주어진 하나의 줄로 입력해야된다. 그리고 출력을 할 때는 각 줄에 해당하는 두 정수의 합과 해당 줄을 의미하는 문자열을 함께 출력한다. 코드 문제풀이 입력받는 T의 값만큼 for문을 실행한다. 그리고 두 정수를 입력하기 위한 map()과 split()를 이용한다. 왜냐하면 문제분석에서 언급했듯이 하나의 ..
안녕하세요. 알고리즘 1051번 숫자 정사각형문제를 풀어보도록 하겠습니다. 브루트포스의 전형적인 NM문제네여. N,M이 50이하의 자연수이고 가장 큰 정사각형을 찾는 부분에서 min(N,M)이 반복되니까 대략 50*50*50번의 연산이 필요합니다. 이를 통해 완전탐색으로 풀 수 있다는 것을 알 수 있습니다! 그래서 저는 삼중 for문을 사용하여 구현을 해보았습니다. ​코드는 다음과 같아요. #include #include #include #include #include using namespace std; int n = 0; int m = 0; int max_size = 1 ; int main (void){ cin>>n>>m; string arr[n]; for (int i = 0 ; i < n ; i++..
링크 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 풀이 1. 주어진 보드에서 8x8 크기의 체스판을 뽑아낸다. 2. 뽑아낸 체스판을 이용해서, 가장 왼쪽 위가 검은색으로 시작해야 최소한으로 다시 칠해야 하는지 하얀색으로 시작해야 최소한으로 다시 칠해야 하는지 확인한다. 3. 이렇게 만들 수 있는 체스판을 모두 확인해서 다시 칠해야 하는 정사각형의 최소 개수를 구한다. 단순무식하게 모든 경우의 수를 확인하는 완전 탐색의 기본적인 문제로..
1. [BOJ 4435] 중간계 전쟁 https://www.acmicpc.net/problem/4435 4435번: 중간계 전쟁 첫째 줄에 전투의 개수 T가 주어진다. 각 전투는 두 줄로 이루어져 있다. 첫째 줄에 간달프 군대에 참여한 종족의 수가 주어진다. 이 값은 공백으로 구분되어 있으며, 호빗, 인간, 엘프, 드워프, www.acmicpc.net 문제에서 요구한 대로 아래 내용에 맞게 점수를 곱해 더해주면 되는 문제입니다. 간달프 호빗 - 1 인간 - 2 엘프 - 3 드워프 - 3 독수리 - 4 마법사 - 10 사우론 오크 - 1 인간 - 2 워그(늑대) - 2 고블린 - 2 우럭하이 - 3 트롤 - 5 마법사 - 10 t = int(input()) for i in range(t): a1, a2, ..
https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 문제 풀이 첫번째 줄에 얻은 값들을 num이라는 리스트에 저장하고, 두번째 줄부터 입력되는 정사각형의 각 숫자들을 rec라는 2차원 리스트를 생성하여 값을 저장한다. 네 꼭짓점의 수가 모두 같은 가장 큰 정사각형의 크기를 출력해야 하므로, 해당 정사각형 내에서 만들 수 있는 가장 큰 정사각형 변의 길이에서 시작하여 변의 길이를 하나씩 줄여가는 반복문을 만든다. 반복문을 사용하여 위와 같은 방식으로..
https://www.acmicpc.net/problem/10178 10178번: 할로윈의 사탕 할로윈데이에 한신이네는 아부지가 사탕을 나눠주신다. 하지만 한신이의 형제들은 서로 사이가 좋지않아 서른이 넘어서도 사탕을 공정하게 나누어 주지 않으면 서로 싸움이 난다. 매년 할로윈 www.acmicpc.net 문제분석 정수 입력을 받아 그 정수만큼 loop 문을 돌려서 2개의 정수를 입력 받고 그 몫과 나머지를 출력하는 문제이다. 몫과 나머지를 출력할 때, 문자열을 함께 출력해야 한다. C++ 언어에서는 단순히 입출력 함수를 쓰면 되지만, 파이썬에서 이 문제를 풀기 위해서는 format이나 print(f) 함수를 사용해야 한다. 코드 a = int(input()) for _ in range(a): n, m ..
KauKoala
'Koala - 5기' 카테고리의 글 목록 (11 Page)