파이썬 60

[Python] 01. 기본 자료형과 형 변환(cast)

자료란? - 프로그램이 처리할 수 있는 모든 것을 의미 파이썬의 자료형 불변형(immutable)자료형 : 정수, 실수, 문자열, 튜플 변형(mutable)자료형 : 리스트, 딕셔너리, 셋 반복가능한(iterable)자료형 : 리스트, 튜플, 문자열, 딕셔너리 0. NoneType - 비어있는 변수 1.숫자 - 정수형(int), 실수형(float), 복소수(complex) 2.문자열(str(string)) - 문자의 나열(글자들이 나열된 것) - 큰따옴표("") 또는 작은따옴표('') 로 선언 3.논리형(bool(boolean)) - True와 False를 나타내는 값 - 파이썬은 대소구분하는 언어로 TRUE(x), FALSE(x), T(x), F(x) 4.리스트(list) - 여러가지 자료를 저장 할 ..

Python/Python 2023.11.23

백준 [25206.너의 평점은] | Python

✏️ 문제 https://www.acmicpc.net/problem/25206 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net ✏️ 풀이방법 1. 하나의 리스트에 과목명, 학점, 등급을 담기 2. 학점*과목평점, 학점을 담을 리스트를 선언하여 등급이 P가 아닐 때만 값을 추가하기 3. 학점*과목평점과 학점을 담은 리스트를 활용하여 학점의 총합을 연산하기 📌 코드 grade = [['A+',4.5],['A0',4.0],['B+',3.5],['B0',3.0],['C+',2.5],['C0',2.0],['D+',1.5],[..

Python/online judge 2023.11.17

백준 [2941.크로아티아 알파벳] | Python

✏️ 문제 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net ✏️ 풀이방법 1. 크로아티아 알파벳을 담은 리스트(croatias)를 선언 2. 입력받은 문자열(croatia) 안에 크로아티아 알파벳이 있는지 확인 3. 크로아티아 알파벳과 일치하는 문자열이 있을경우 문자열을 '!'로 치환 4. 치환후 문자열의 길이를 출력 📌 코드 croatias = ['c=','c-','dz=','d-','lj','nj','s..

Python/online judge 2023.11.17

백준 [2566.최댓값] | Python

✏️ 문제 https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net ✏️ 풀이방법 1. max함수를 통해서 그래프의 최댓값 찾기 2. 2중 반복문을 통해서 최댓값 원소의 위치 찾기 📌 코드 graph = [] for _ in range(9): graph.append(list(map(int,input().split()))) #map함수 사용 max_value = max(map(max,graph)) for i in range(len(graph)): for j in range(..

Python/online judge 2023.11.17

백준 [2563.색종이] | Python

✏️ 문제 https://www.acmicpc.net/problem/2563 2563번: 색종이 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변 www.acmicpc.net ✏️ 풀이방법 1. 가로1,가로2=가로1+10, 세로1,세로2=세로1+10 를 하나의 배열에 놓고 [가로2-가로1,세로2-세로1] 을 계산한 리스트를 두고 각각의 색종이의 길이 안에 겹치는 범위가 있는지 비교 2. 겹치는 범위가 있다면 전체 넓이 - 겹치는 부분의 넓이 -> 비교를 너무 많이 연산해야할 것 같은 생각이 들었다. 그래서 다른 방법으로 접근했다. 1. 0으로 초기화된 배열 선언 2. ..

Python/online judge 2023.11.17

백준 [1157.단어 공부] | Python

✏️ 문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net ✏️ 풀이방법 1. 대문자로 출력하기 때문에 모든 알파벳을 대문자로 변경한 str1리스트 2. 중복을 제외하고 어떤 알파벳이 있는지를 담는 str2리스트 3. str과 str2를 비교해서 동일한 알파벳의 개수 count하는 str_cnt리스트 4. str_cnt에 같은 숫자가 2개 이상이면 가장 많이 사용된 알파벳이 여러개이기 때문에 !출력 아닌경우 max값 출력 📌 코드 str = list(input().upper()..

Python/online judge 2023.11.17

백준 [10798.세로읽기] | Python

✏️ 문제 https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net ✏️ 풀이방법 1. 다섯개의 단어를 입력받는 2차원 리스트 선언 2. 단어의 길이가 다를 수도 있기 때문에 단어의 길이를 담는 리스트 선언 3. 입력된 단어 중 가장 긴 길이 만큼 0으로 입력된 리스트를 5번 입력받은 2차원 리스트 선언 4. 입력된 단어의 길이가 길이가 가장 긴 단어와 같지 않다면 입력된 단어만큼 입력하고 그 나머지길이는 !로 대체 5. 출력할 때 새로운 리스트..

Python/online judge 2023.11.17

백준 [2738.행렬 덧셈] | Python

✏️ 문제 https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net ✏️ 풀이방법 1. A,B 두개의 2차원 배열을 각각 입력받기 2. 입력받은 각 행열의 서로의 원소를 더한 값 변수선언해서 저장하기 3. 저장한 변수 출력하기 4. 출력할 때 공백과 함께 출력해야하기에 print함수의 end옵션과 함께 출력 📌 코드 n,m = map(int,input().split()) a = [] for i in range(n): a.append(lis..

Python/online judge 2023.11.17

백준 [10870.피보나치 수5] | Python

✏️ 문제 https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가www.acmicpc.net ✏️ 풀이방법1. for문으로 풀기1) 0과1로 시작하는 리스트 선언2) 앞에 두 수를 더한 값을 리스트에 추가 3) 리스트의 마지막 값 출력 2. 재귀함수로 풀기1) 두 수를 더하여 리턴하는 함수를 선언2) 구하려는 값에서 거꾸로 함수를 호출하며 리턴(재귀함수) 📌 코드1) for문을 사용하여 반복n = int(input())fibo = [0,1]..

Python/online judge 2023.11.17

백준 [2438.별찍기-1] | Python

✏️ 문제https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제www.acmicpc.net✏️ 풀이방법1. 출력횟수(n) 입력받기2. 이중 for문을 사용하여 *출력하기    - print문에 end옵션을 사용하여 줄바꿈을 하지 않고 출력  📌 코드n = int(input())for i in range(1, n+1): #행반복을 위한 반복문 for j in range(i): #열반복을 위한 반복문 print("*", end = '') print() #줄바꿈  📌 결과5***************  🤔 시행착오.1n = int(input())for i..

Python/online judge 2023.11.16