프로그래머스 (55) 썸네일형 리스트형 [ 프로그래머스 ] 할인 행사 오.. 5분 컷. def solution(want, number, discount): answer = 0 for i in range(len(discount) - sum(number) + 1): check = [] product = discount[i:i+sum(number)] for w in want: check.append(product.count(w)) if check == number: answer += 1 return answer 그런데 효율성 측면에서 떨어지나.. 시간이 꽤 오래 소요되는 것 같다. 그래서 다른 분들 풀이 체크. def solution(want, number, discount): basket = 0 for i in range(len(want)): basket += number[i.. [ 프로그래머스 ] 혼자 놀기의 달인 처음에 문제가 눈에 잘 안 들어와서 당황했다. 설명식의 문제가 간만에 나와서 약간 놀라 흠칫했던 것 같다. def solution(cards): groups = [] visited = [False] * len(cards) for i in range(len(cards)): if not visited[i]: k = cards[i] group = [] while True: if visited[cards[k-1]-1] == True: break group.append(cards[k-1]) visited[cards[k-1]-1] = True k = cards[k-1] groups.append(group) groups.sort(key=len, reverse=True) answer = len(groups[0]) * .. [ 프로그래머스 ] 짝지어 제거하기 / 제출 1 / def solution(s): answer = -1 s = list(s) strStack = [] for char in s: if not strStack: strStack.append(char) else: if strStack[-1] == char: strStack.pop() return int(not bool((strStack))) 채점 결과 정확성: 59.7 효율성: 39.8 합계: 99.5 / 100.0 바로 구현 방식이 떠오르고 예제도 쉽게 풀려 바로 제출했는데 정확성의 테스트 케이스(13)를 하나 통과하지 못했습니다. 자만이었던 것 같습니다. LV1을 풀고 와서 이 문제도 들이대면 풀릴 줄 알았던건 지 .. 수정해보도록 하겠습니다. / 제출 2 / def solution(s): .. [ 프로그래머스 ] 서울에서 김서방 찾기 / 제출 1 / def solution(seoul): kimLocation = seoul.index('Kim') return '김서방은 ' + str(kimLocation) + '에 있다' 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 프로그래머스 연습 문제로 제공되는 LV1문제는 원래 간단한 것 같습니다. 기업 기출이었던 같은 난이도 문제와는 결이 확실히 다릅니다. 다만, 계속 주의해야할 것은 자바스크립트와 파이썬을 오가면서 사용하다 보니 서로의 문법이나 메서드 등이 헷갈릴 때가 있습니다. 이번에 그런 실수를 했는데요. 자바스크립트의 indexOf를 사용해 특정 단어의 인덱스 값을 받으려고 해서 에러가 떴습니다. AttributeError: 'list' object has no attr.. [ 프로그래머스 ] 문자열 내 p와 y의 개수 / 제출 1 / def solution(s): pCount = 0 yCount = 0 for char in s: if char == 'p' or char == 'P': pCount += 1 elif char == 'y' or char == 'Y': yCount += 1 if pCount == 0 and yCount == 0: return True elif pCount == yCount: return True else: return False 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 정말 간단한 문제였습니다. 문제 이해하는 데에 별 다른 시간이 소요되지 않는 문제였던 것 같습니다. 대신 어떻게 다양한 방식으로 언어를 활용해볼 지(문법을 다양하게 적용해볼 지) 생각해 볼 수 있을 것 같.. [ 프로그래머스 ] 스킬체크 탄탄한 비기너 오랜만에 파이썬으로 코딩테스트 문제를 푸려고 하니 자바스크립트 문법이랑 헷갈려서 조금 버벅였습니다. 코딩테스트 문제 아이디어 떠올리는 것 자체도 머릿 속에서 구조가 바로 안 잡히기도 했습니다. 다행히 낮은 난이도의 문제라서 적절한 시간 내에 풀이할 수 있었습니다. 첫 번째 문제는 10분, 두 번째 문제는 27분이 걸렸습니다. 두 문제 다 문자열을 이용한 문제였습니다. 첫 번째 문제 def solution(s): sList = list(map(int, s.split(" "))) answer = str(min(sList)) + " " + str(max(sList)) return answer 순간적으로 map함수의 구조가 생각나지 않았습니다. 한동안 집중적으로 Javascript를 공부하고 있어 JS의 Arr.. [ 프로그래머스 ] 스킬체크 굿스타터 프로그래머스에 들어갔는데 전과 다른 UI라 다른 사이트인 줄 알았습니다. 사이트 리뉴얼을 했네요! 처음 보는 '스킬체크'라는 섹션이 생겨서 흥미로워서 들어갔습니다. ??: "Code first! 프로그래밍 스킬을 확인하세요." !!: "넵" 안 그래도 이번 코테 망쳐서 속상해하고 있는 와중에 다시 실력 객관화할 좋은 툴인 것 같아 냉큼 풀어봤습니다. 최소한의 컴퓨터 사고력은 있다고 합니다. 이번에 멘탈 나가서 그것도 안 된다고 생각했는데.. 괜찮아 넌 왕기초는 아니란다 ~ 그냥 잘 못 하는 것뿐이지~ 뭐 이런 사소하고 따뜻한 위로가 된 것 같습니다. 40분이 제한 시간이긴 한데 제한 시간 절반 정도 쓸 난이도였습니다. 시간이 길지 않은 테스트니 매일매일 다음 것도 하면 재밌을 것 같습니다. 문제를 골라서.. [ 프로그래머스 ] 문자열 내 마음대로 정렬하기 / 제출 1 / ''' 문제 인풋-아웃풋: n이 주어졌을 때, 인덱스 n기준으로 각 단어를 정렬 주요 예외: ! 해당 인덱스 자리 문자가 같으면 ! 단어 전체가 사전순으로 앞선게 앞으로 # 1. string을 돌며, [해당 인덱스 자리 문자, 해당 단어] 원소를 리스트에 넣기 # 2. 1의 리스트를 [0]기준 정렬, [1]길이 기준 정렬 # 3. 2처리 끝난 리스트를 [0] 순서대로 뽑아 answer에 넣기 ## strings: 100 * 50 이므로 O(n), O(nLogn), O(n) 무리 없다고 판단 ''' def solution(strings, n): answer = [] charAndWordList = getCharWordList(strings, n); print(charAndWordList) .. [ 프로그래머스 ] [1차] 다트게임 / 제출 1 / def solution(dartResult): darts = list(dartResult.strip()) result = [] num = 'ss' for dart in darts: print(num, dart, result) # 숫자 저장 if dart.isdigit(): if num == 1 and dart == '0': print('10') num = 10 if num != 'ss': result.append(num) print(result) num = -1 num = int(dart) # S,D,T에 따라 곱해주기 elif dart == 'S': num = num ** 1 elif dart == 'D': num = num ** 2 elif dart == 'T': num = num *.. [ 프로그래머스 ] 자물쇠와 열쇠 / 제출 1 / def solution(key, lock): answer = False # 키 끼워넣을 공간 위해서 Lock늘려주기 n = len(lock) new_lock = [[0]*(n+2*(n-1)) for _ in range(n+2*(n-1))] for i in range(n): for j in range(n): new_lock[n-1+i][n-1+j] = lock[i][j] # 키 4방향으로 확인 for i in range(4): key = list(map(list, rotate_key(key))) # 시계반대방향회전 answer = push(key, new_lock) if answer: break return answer def rotate_key(key): return list(revers.. 이전 1 2 3 4 ··· 6 다음