일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- YOLOv5
- Django
- 데이터
- GIT
- 설계
- Len
- 백준
- sql
- SQL 고득점 Kit
- 슬라이싱
- 아이엠어바텐더
- 코딩테스트 연습
- Join
- 프로젝트
- map
- List Comprehension
- 파이썬
- html
- css
- date_format
- count
- Python3
- ORDER BY
- 파이썬 몫
- 파이썬 슬라이싱
- where
- 프로그래머스
- pcce 기출문제
- python
- 단어 공부
- Today
- Total
목록Python3 (16)
nan + nan = 2nan
가상 환경이란? 가상 환경은 독립된 공간을 만들어주는 기능이다. 파이썬을 사용해보면, 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() 은 주어진 모든 공백을 하나로 처리하는 성격이..
코드 입력 def get_counter(): text = input().upper() cnt = dict() for t in text: if t not in cnt.keys(): cnt[t] = text.count(t) c = sorted(cnt.items(), key=lambda x: x[1], reverse=True) if len(c) == 1: print(text) elif c[0][1] != c[1][1]: return print(c[0][0]) else: return print('?') get_counter() 시간 초과 때문에 애를 많이 먹인 문제이다.문제 자체는 그렇게 어려운게 아닌데, 자꾸 시간 초과가 떠서 중간 중간 시간이 뜰 만한 부분들을제거하는데 주력했다. 예를 들어, 단어에 나오는 ..
코드 입력 def get_c_str(): cycle, target = map(str, input().split()) answer = '' for t in target: answer += t * int(cycle) return answer test_case = int(input()) for test in range(test_case): print(get_c_str()) 이것도 정말 쉽지만, 살짝 생각을 해보게 했다. 문자열에 숫자를 곱하면 그만큼 문자열이 붙는거였나? 해서 쥬피터로 시도해보고, 되네? 그럼 빈 문자열에 문자열 붙이면 되겠지? 라고 생각해서 해봤더니 됐다. 마지막으로 test case를 안 적어 자꾸 에러가 났는데, test case만큼 해당 함수를 반복하게끔 만들어 줬더니 끝! 출처 : 백..