본문 바로가기

Python50

[백준] 후보 추천하기 / 1713번 / 파이썬 / Python / defaultdict 💡solutions ) 💬 defaultdict 사용 -> collections 모듈의 defaultdict는 딕셔너리와 거의 비슷하지만 key값이 없을 경우 미리 지정해 놓은 초기(default)값을 반환하는 특징이 있다. -> 그래서 조건문을 통해 get()메소드로 키값이 있는지 확인하지 않아도 되는 편리함이 있다. 💬 반복문에서 추천 리스트의 요소들을 하나씩 뽑아서 사진틀 리스트(photo)에 있는 지 먼저 확인하기 💬 비어있는 사진틀 유무에 따라 분기 처리 -> 비어있는 사진틀이 없다면 photo 리스트에 가장 적은 추천을 받은 번호의 학생을 찾기 -> 해당 번호의 학생 photo 리스트에서 삭제, 동시에 r_dic에서도 삭제하여 추천횟수 초기화(0) 🎫code ) from collections .. 2020. 10. 21.
[백준] 1541 / 잃어버린 괄호 / 파이썬 / Python / 문자열 이번 문제는 런타임에러가 계속 나서 고생을 좀 했습니다.. 😂 쉬운 문제 같았는데 계속 틀리더라구요! 결론적으로 문제에서 주어진 조건에 따른 반례를 고려하지 못해서 틀렸습니다. 예를 들어 '수는 0으로 시작할 수 있다.' 나 연산자 없이 숫자 하나만 입력받는 경우 등이 있습니다. 문제에서 우리가 알 수 있는 테스트케이스는 55-50+40 밖에 없으므로, 런타임에러가 나는 분들은 반례가 될 수 있는 것들을 찾아서 넣어보시길 추천드립니다! 💡solutions ) 💬 크게 세 부분으로 나눠서 로직 구현 👇 💬 주어진 식에 '-' 연산자 있는 경우 / '-'없이 '+' 연산자만 있는 경우 / 연산자 없이 숫자 하나만 입력받는 경우 💬 '-' 연산자가 있는 경우 : 최초의 마이너스 연산자를 기점으로 f, b으로 .. 2020. 10. 19.
[백준] ATM / 수 정렬하기 / 파이썬 / Python / 정렬 💡solutions ) 💬 sorted()를 이용해 오름차순 정리한 정렬의 기본 문제 🎫code ) # 11399번 ATM 문제 n = int(input()) arr = sorted((map(int, input().split()))) res = 0 next = 0 for i in arr: res += i + next next += i print(res) # 2750번 수 정렬하기 문제 import sys input = sys.stdin.readline arr = [] for i in range(int(input())): n = int(input()) arr.append(n) arr = sorted(arr) for i in arr: print(i) 📌 description ) 문제출처 : www.acmic.. 2020. 10. 12.
[프로그래머스] 짝지어 제거하기 / 파이썬 / Python 💡solutions ) 💬 처음 작성했던 코드에서 슬라이싱으로 문자열을 업데이트 했는데 시간초과 나서 통과하지 못했다. 💬 다음으로 구현한 코드는 stack을 만들어서 문자를 하나씩 append()로 넣어주고 짝을 만난 경우에는 pop()으로 제거해주었다. 💬 마지막 문자열의 길이를 재고 0이면 1리턴, 0이 아니면 0을 리턴한다. 🎫code ) 🔶 효율성 테스트에서 시간 초과로 통과하지 못한 코드 # 시간 초과 코드 def solution(s): if len(s) % 2 == 1: return 0 idx = 0 while True: if len(s) == 0: return 1 if idx > len(s) - 2: return 0 if s[idx] == s[idx + 1]: if idx == 0: s =.. 2020. 10. 6.
[프로그래머스] N개의 최소공배수 / 파이썬 / Python 💡solutions ) 💬 주어진 숫자 리스트를 오름차순으로 정리한 후 가장 큰 값인 max를 구한다. 💬 나머지 숫자들이 max의 약수인지 먼저 확인하고, 약수가 아닌 경우 max의 그 다음 배수를 확인하는 과정을 반복한다. -> 나머지 숫자들이 모두 약수가 되는 경우가 모든 숫자에 대한 최소공배수가 된다. (max의 배수는 max가 이미 약수가 된다.) 🎫code ) def solution(arr): answer = 0 arr.sort() max = arr[-1] answer = max while True: for i in range(len(arr)-1): if answer % arr[i] != 0: break else: return answer answer += max 📌 description ) .. 2020. 10. 2.
[프로그래머스] 삼각 달팽이 / 파이썬 / Python / 월간 코드 챌린지 시즌1 💡solutions ) 💬 피라미드 배열 만들고, 삼각형을 기준으로 if문 처리 (각 선분에 해당하는 3가지 조건으로 처리) 💬 해당 문제를 풀면서 list index out of range가 많이 나서 고생을 좀 했다..!!!!😂 💬 인덱스 에러가 나지 않게 while문 안에서 break 조건을 적절히 넣어줘야 한다 ->j, k 범위를 체크하거나 arr[j][k] 값이 있는지 확인하는 조건을 넣었음 💬 최근 본 코테에서 2차원 배열 리스트를 활용하는 문제가 나왔는데 상당히 어렵게 느껴졌다. 해당 유형의 문제를 더 연습해야겠다! 🎫code ) def solution(n): arr = [[0] * _ for _ in range(1, n + 1)] num = 1 j = 0 k = 0 for i in rang.. 2020. 9. 28.