Python 28

enumerate 내장 함수로 for문 돌리 - 공부하는 도비

많은 프로그램 언어가 특정 변수(ex. i, j, k)를 증가시켜가면서 반복문을 수행합니다. 하지만, 파이썬에서는 enumerate()라는 내장 함수로 이러한 변수 없이 독특한 방식으로 반복문을 돌릴 수 있습니다. for __ in __: 가장 기본적인 for문은 for in : 형태로 작성이 됩니다. 예를 들어, 3개의 숫자를 담고 있는 리스트를 for 문으로 출력해보는 코드를 작성해보겠습니다. 해당 리스트의 인덱스도 함께 출력하고 싶을 땐 어떻게 해야할까요?. 제일 간단한 방법은 새로운 변수를 하나 두고 변수의 값을 증가시키며 출력하는 것입니다. 아마 C언어나 다른 언어를 하다가 파이썬을 하시면, 제일 먼저 떠올리는 방법 중 하나일 것 같습니다. 하지만, 프로그램이 종료되어도 변수(index)라는 값..

Python/Python Basic 2021.12.06

for 문을 사용하여 list 값 remove 할 때 주의 할 점 - 공부하는 도비

리스트에 있는 값을 for문으로 하나하나 삭제해보려고 했지만, 계속 리스트 범위를 벗어났다는 등의 오류가 났습니다. 다음 코드를 보며, 어떤 오류가 있는지 살펴보겠습니다. test = list(range(0, 10)) # test = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print("original test : ", test) for i in test: test.remove(i) print(test) 해당 코드를 실행시키면, 위와 같은 결과가 나옵니다. 문제의 원인은, 첫 번째 루프 때는 test의 0번째 원소를 지우므로 리스트는 [1, 2, 3, 4, 5, 6, 7, 8, 9]가 됩니다. 두 번째 for문을 돌 때는, test의 1번째 원소(test = [1, 2, 3, 4, 5, 6..

Python/Python Basic 2021.11.08

백준 11653번 문제 풀이 - 공부하는 도비

https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 이 문제는 입력 받은 수를 소인수분해 하는 문제이고, 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력해야 한다. 소인수분해를 못하는 사람은 없을 꺼라고 생각하고, 코드를 바로 보면 우선, 큰 while문 안에 또 다른 while문을 넣었다. 첫번째 while 조건은 입력 받은 수가 1이 될 때까지 반복문을 돌리는 것이고, 두번째 while 조건은 나누는 수(d)가 입력받은 수(a)를 나누었을 때, 나머지가 0이 되도록 d를 1씩 증가시키면서, a를 나누었을 때 나머지가 0이 될 때 까지 반복문을 돌리는 것이다. ..

Python/Baekjoon 2021.10.24

백준 5355번 문제 풀이 - 공부하는 도비

https://www.acmicpc.net/problem/5355 5355번: 화성 수학 겨울 방학에 달에 다녀온 상근이는 여름 방학 때는 화성에 갔다 올 예정이다. (3996번) 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산 www.acmicpc.net 해당 문제는 특정 문자가 들어오면, 그에 맞춰 정해진 연산을 해주는 문제입니다. - @ => 3 곱하기 - % => 5 더하기 - # => 7 빼기 예제 입력 처럼, 몇개의 문자가 들어올지 모르기 때문에 미리 변수를 선언해서 값을 입력 받는 형태는 사용할 수 없을 꺼라고 생각했다. ( ex) a, b, c = map(int, sys.stdin.readline().split()..

Python/Baekjoon 2021.10.24

백준 1032번 문제 풀이 - 공부하는 도비

https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 처음 이 문제를 봤을 때, 입력받은 정수 만큼 문자열을 저장한 후, 각 자리마다 모두 비교할 생각이었다. 하지만, 제일 처음 입력 받은 문자열과 그 다음 입력 받은 문자열을 비교 한 후, 예제 출력 처럼 미리 바꿔두면, 한번에 모든 문자열을 각 자리마다 비교하는 수고가 사라진다. 코드는 간단하다. 1. a 에 입력한 문자열을 리스트 형으로 바꾸어 저장한다. 2. 입력받은 정수(count)-1..

Python/Baekjoon 2021.10.22

백준 2775번 문제 풀이 - 공부하는 도비

www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 이 문제를 딱 봤을 때, 저는 이중 리스트밖에 생각이 안 나더라고요. 3층에 4호라고 하면, 0층 부터 3층의 4호까지 거주민의 수가 쫘악 정리가 되는데 그걸 눈으로 보고 싶단 생각을 했어요. 그래서 minn이라는 함수를 짜고, 2층의 2호라고 하면 0층의 1호 2호, 1층의 1호 2호에 사는 사람들의 수가 이중 리스트에 들어가도록 했습니다. 위의 코드는 백준에 제출하기 위한 코드이고, 주석부분 풀어서 출력하게 되면 아래와 같은 결과가 나옵니다. 2번..

Python/Baekjoon 2021.01.21

백준 1712번 문제 풀이 - 공부하는 도비

www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 손익분기점 찾는 문제입니다. 간단히 몇 개를 팔아야 순 이익이 남을까? 하는 건데, 제가 처음 이 문제를 접했을 땐, 단순히 for문을 사용하면서 하나하나 +1을 하며 계산하면 되겠지라는 생각을 했는데 문제 조건을 보면, 네,, 그렇게 풀지 말라고 조건이 21억 이하의 자연수죠?ㅎㅎ.. 아마 저 처럼 생각한 사람이 많아서 정답률이 조금 낮은 거 같습니다. 남은건 식을 사용하여 문제를 푸는건데, 저는 아래 방식으로 문..

Python/Baekjoon 2021.01.06

파이썬 최대, 최소 값 찾기(max(), min() 사용) - 공부하는 도비

파이썬에서 최대, 최소 값을 찾을 때 정말 편리한 함수가 있죠! 바로 max(), min()를 사용하면 됩니다. 위의 함수를 사용하지 않고도 최대 최소 값을 찾을 수는 있지만, 코드의 길이를 줄일 수 있다는 장점이 있기 때문에 저는 이미 정의된 함수를 자주 쓰는 편입니다. 입력은 한 줄에 정수를 쭈우욱 입력하고, 그 중 최대, 최소를 찾는 프로그램입니다. 코드를 바로 보겠습니다. * MIN(), MAX() 함수 사용 아주 깔끔하죠? * MIN(), MAX() 함수 사용X 당연 위의 함수를 사용하지 않고도 프로그램을 작성할 수 있죠 대신 코드가 길어지죠? ㅜ 저는 입력 받은 값을 리스트로 변경해서 min,max 함수를 사용했는데, tuple도 되니 편한 자료형을 사용하시면 될거 같습니다.!

Python/Python Basic 2020.12.03

백준 1110번 문제 풀이 - 공부하는 도비

www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 문제만 길지 사실상 단순한 연산과 while문을 얼마나 알고 있냐는 문제입니다. 바로 코드를 보겠습니다. 저는 개인적으로 값들이 변하는 걸 확인하면서 코딩하는 편이라 나눈 몫과 나머지를 더한 값을 저장하는 변수(temp)와 그 변수를 이용해 값을 만드는 변수(check_value)를 따로 지정했고, Check_value와 value가 같아지면 while문을 종료시켰습니다. 위 코드 처럼 계산 과정..

Python/Baekjoon 2020.12.02

백준 10951번 문제 풀이 - 공부하는 도비

https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 예시 입, 출력을 보면 더이상 입력이 들어오지 않으면, 연산을 하고 결과로 출력하는 형태입니다. 어떻게 짜볼까 하다가 “try except” 를 사용해보았습니다. try-except 는 예외가 발생했을 때도 프로그램이 중단되지 않고 계속 실행하게 해주는 방법입니다. 자세한 내용은 아래 링크에서 확인해주세요. 2020/12/02 - [파이썬] - [파이썬] 에러처리, 예외 처리(try~except) - 공부하는 도비 [파이썬] 에러처리, 예외 처리(try~except) - 공부하는 도비 저번 피드에서는 파이..

Python/Baekjoon 2020.12.02