일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- count
- 파이썬 몫
- 프로그래머스
- 슬라이싱
- css
- GIT
- 코딩테스트 연습
- YOLOv5
- python
- date_format
- 백준
- 프로젝트
- sql
- pcce 기출문제
- where
- 파이썬 슬라이싱
- ORDER BY
- 단어 공부
- 파이썬
- Len
- map
- 데이터
- Django
- 아이엠어바텐더
- 설계
- Join
- Python3
- SQL 고득점 Kit
- html
- List Comprehension
- Today
- Total
목록Python/백준 알고리즘 (68)
nan + nan = 2nan
코드 입력 num = int(input()) word = 'long ' # 4로 나눈 몫을 구함 cnt = num // 4 # 몫만큼 단어를 생성 print(word*cnt + 'int') 출처 : 백준 Online Judge
코드 입력 a, b, c = map(int, input().split()) print(a+b+c) 출처 : 백준 Online Judge
코드 입력 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() 시간 초과 때문에 애를 많이 먹인 문제이다.문제 자체는 그렇게 어려운게 아닌데, 자꾸 시간 초과가 떠서 중간 중간 시간이 뜰 만한 부분들을제거하는데 주력했다. 예를 들어, 단어에 나오는 ..