일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- map
- where
- 단어 공부
- css
- YOLOv5
- count
- Len
- date_format
- 프로젝트
- 프로그래머스
- 파이썬
- GIT
- python
- 백준
- 코딩테스트 연습
- 슬라이싱
- 파이썬 슬라이싱
- 파이썬 몫
- Django
- 설계
- ORDER BY
- 아이엠어바텐더
- List Comprehension
- html
- Join
- pcce 기출문제
- Python3
- sql
- 데이터
- SQL 고득점 Kit
- Today
- Total
목록Python (117)
nan + nan = 2nan
Pickle? - 텍스트 형태로 파일을 저장하는 것이 아닌, 객체 자체를 바이너리 형태로 저장하는 형식 파이썬에서 사용하는 딕셔너리, 리스트, 클래스 등의 자료형을 변환 없이 그대로 파일로 저장하고 이를 불러올 때 사용하는 모듈 Pickling - 파이썬 객체를 pickle 파일로 저장 (pickle.dump()) Unpickling - pickle 파일에서 객체를 읽어오는 과정 (pickle.load()) 코드 예시 import pickle # 모듈 임포트 # 저장할 딕셔너리 데이터 생성 data = {} data[1] = {'no': 1, 'subject': '안녕 피클', 'content': '피클은 매우 간단합니다.'} # 딕셔너리를 pickle 파일로 저장 with open('data.p', '..
보통 for 문이나 while 문을 사용할 때 break, continue, pass를 사용한다. 근데 평소 continue와 pass에 대해 제대로 정의해놓고 넘어가지 않아 간혹 사용 시 헷갈려서 검색하는 경우가 종종 있었다. 그래서 확실하게 정의하고 넘어가고자 한다. 우선 가장 명확한 break부터 정의한다. Break 보통 제어 흐름을 중단할 때, break을 사용한다. 반복문에서 특정 조건에 부합하면 빠져나오기 위해 주로 사용하는데, 다음과 같은 상황이다. i = 0 # 초기값 설정 while True: # 무한 루프 print(i) # 값 출력 i += 1 # 1씩 더함 if i == 100: # 100에 도달한 경우, break # break으로 반복문 종료 다음 코드처럼 break의 사용법은..
가상 환경이란? 가상 환경은 독립된 공간을 만들어주는 기능이다. 파이썬을 사용해보면, pip로 설치하는 라이브러리들이 보통 site-packages 폴더 안에 저장이 되어 사용이 가능하게 된다. 기본 pip로 설치한 패키지는 모든 파이썬 스크립트에서 사용이 가능한데, 여러 프로젝트를 개발할 경우에는 프로젝트 별로 패키지를 관리할 필요성이 생긴다. 예를 들어, 특정 파이썬 버전에 맞는 특정 라이브러리의 버전들이 존재하는데 다른 프로젝트에도 해당 패키지를 적용하게 된다면 호환성 문제 때문에 오류가 발생할 가능성이 크고 개발하는데 있어서 심히 스트레스를 받게 된다. 그렇기 때문에, 프로젝트 별로 가상 환경을 달리하여 패키지를 관리한다면 호환성에 대한 문제에서 벗어날 수 있기에 이러한 습관을 들이는 것이 중요하..

코드 입력 num = int(input()) a = 1 cnt = 1 while num > a: a += 6 * cnt cnt +=1 print(cnt) 생각보다 많이 헤멘 문제다. 문제를 처음 받고, 수열에 관한 문제인데 패턴이 있겠다 싶어 패턴을 분석했다. 공비가 6씩 커지는 공비수열의 형태가 나타나는게 아닌가 싶었다. 첫째항은 1이고, 전 항과 공비를 더하는 형태의 수식같았다. 공비수열의 형태가 나타나는 걸 보았을 때, 공비수열 등식을 이용해서 푸는게 아닐까?라는 생각에 수식 짜는데 꽂혀서 시간을 많이 허비했다. 결국에는 실패였다. 수식을 짰는데, input을 넣었을 때 output이 나와야 되는데 반대로 output을 넣었을 때 input이 나오는 시스템이었다. 그래서 거꾸로 식을 세워보려고 하니..

코드 입력 fc, vc, p = map(int, input().split()) def get_BEP(fc=fc, vc=vc, p=p): if p-vc == 0: return -1 q = fc / (p-vc) if q > 0: return int(q) + 1 else: return -1 print(get_BEP()) 손익 분기점 문제가 나와서 쉬울 줄 알았지만, 이상한데서 헤메고 말았다. 나름 금융과라고, 금방 뚝딱 풀줄 알았는데 그 놈의 시간초과 때문에 다른 로직을 생각해야했다. 처음에는 앞서 푼 문제처럼 if 문으로 예외처리하면서 하나씩 맞는지 테스트하는 로직이었는데, 시간초과 오류가 계속 발생했다. 그래서 한 번에 답을 알 수 있지 않을까? 라고 생각을 해서, 과거에 회계나 경제 과목 들을 때 썼던 ..

코드 입력 test_case = int(input()) cnt = 0 for _ in range(1, test_case+1): test_ = input() val_word = [] before_alphabet = '' while True: if len(test_) >= 2: if test_[0] not in val_word: val_word.append(test_[0]) before_alphabet = test_[0] test_ = test_[1:] elif test_[0] not in val_word: val_word.append(test_[0]) before_alphabet = test_[0] test_ = test_[1:] elif test_[0] in val_word and before_alpha..

코드 입력 test = input() list_cro = ['c=', 'c-', 'd-', 'lj', 'nj', 's=', 'z='] cnt = 0 while True: if len(test) >= 4: if test[:3] == 'dz=': cnt += 1 test = test[3:] elif test[:2] in list_cro: cnt += 1 test = test[2:] else: cnt += 1 test = test[1:] elif len(test) == 3: if test == 'dz=': cnt += 1 break elif test[:2] in list_cro: cnt += 1 test = test[2:] else: cnt += 1 test = test[1:] elif len(test) ==..

코드 입력 text = input() list_alpha = [chr(i) for i in range(ord('A'), ord('Z')+1)] alpha_dict = dict() for la in list_alpha: if la in list_alpha[:3]: alpha_dict[la] = 3 elif la in list_alpha[3:6]: alpha_dict[la] = 4 elif la in list_alpha[6:9]: alpha_dict[la] = 5 elif la in list_alpha[9:12]: alpha_dict[la] = 6 elif la in list_alpha[12:15]: alpha_dict[la] = 7 elif la in list_alpha[15:19]: alpha_dict[..

코드 입력 a, b = map(str, input().split()) new_a = a[-1] + a[1] + a[0] new_b = b[-1] + b[1] + b[0] print(max(new_a, new_b)) 이전 문제가 좀 이상해서 분노의 풀어 제끼기로 1분도 안 되서 풀어버렸다. 간단하다. 세 자리 수만 나올 것이기 때문에, 문자열로 받은 다음 앞뒤만 바꾸고 다시 int형으로 바꿔서 둘 중에 큰 수를 출력하면 되는 문제다. 얘는 문제 오류가 없어서 그나마 시원하다. 출처 : 백준 Online Judge https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해..

코드 입력 text = input() print(len(text.strip().split())) 문제를 읽고 너무 쉽다 생각해서 그냥 바로 풀었는데, 의외로 막힌 문제다. split()과 split(' ')의 차이 때문인가.. 처음엔 문제를 잘못 읽은 줄 알고 몇 번이고 다시 읽었다. - 단어가 중복되도 count는 그대로 한다 - 공백은 한 개로 단어를 구분한다 - 공백이 연속해서 나올 수 없다 - 문자열 앞뒤에 공백이 있을 수 있다 해당 조건들을 바탕으로 만든 코드는 text = input() print(len(text.strip().split(' '))) 였다. 몇 번을 해도 안 되길래, 검색을 해보니 split()으로 처리하면 된다더라. split() 은 주어진 모든 공백을 하나로 처리하는 성격이..