Programmers / 2단계 / n^2 배열 자르기 / python
·
Coding Test/Programmers
코딩테스트 연습 - n^2 배열 자르기 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 def solution(n, left, right): arr = [[0] * n for _ in range(n) ] num=1 for i in range(n): for j in range(n): if i==j: arr[i][j]=num num+=1 else: arr[i][j]=num new_arr=sum(arr, []) return new_arr[left:right+1] 중간 중간 출력하여 확인하며 문제를 풀었는데 테스트 실패가 떴다. 뒤늦게 입출력 예시를 보니 문제가 내가 이해한 것과 달랐다. 나는 n=3일 때, i행 i열까지 영역 내의 모든 빈 칸을 숫자 i로 채울 때 다음과 같은 2차원 배열을..
Programmers / 2단계 / 전화번호 목록 / python
·
Coding Test/Programmers
코딩테스트 연습 - 전화번호 목록 | 프로그래머스 스쿨 (programmers.co.kr)    나의 풀이- 해시 이용def solution(phone_book): # 1. Hash map을 만든다 hash_map = {} for phone_number in phone_book: hash_map[phone_number] = 1 # 2. 접두어가 Hash map에 존재하는지 찾는다 for phone_number in phone_book: jubdoo = "" for number in phone_number: jubdoo += number # 3. 접두어를 찾아야 한다 (기존 번호와 같은 경우 제외..
Programmers / 2단계 / 할인 행사 / python
·
Coding Test/Programmers
코딩테스트 연습 - 할인 행사 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 . 모범 답안 from collections import Counter def solution(want, number, discount): answer = 0 check = {} for w, n in zip(want, number): check[w] = n for i in range(len(discount)-9): c = Counter(discount[i:i+10]) if c == check: answer += 1 return answer Counter 사용 len(discount)-9로 범위가 초과되지 않게 한다.
★ Programmers / 2단계 / 괄호 회전하기 / python
·
Coding Test/Programmers
코딩테스트 연습 - 괄호 회전하기 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 . 모범 답안 def bracket(s): stack = [] for i in s: if len(stack) == 0: stack.append(i) else: if i == ")" and stack[-1] == "(": stack.pop() elif i == "]" and stack[-1] == "[": stack.pop() elif i == "}" and stack[-1] == "{": stack.pop() else: stack.append(i) return 1 if len(stack) == 0 else 0 def solution(s): answer = 0 for i in range(len(s)): i..
Programmers / 2단계 / 연속 부분 수열 합의 개수 / python
·
Coding Test/Programmers
코딩테스트 연습 - 연속 부분 수열 합의 개수 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 . 모범 답안 def solution(elements): answer = 0 cycle = elements + elements s = set() for i in range(len(elements)): for j in range(len(elements)): s.add(sum(cycle[i:i+j])) return len(s) 주어진 원소를 두 배 해서 붙인 다음 길이에 제한을 두어 문제 해결 ★ set() - add() 활용하기
Programmers / 2단계 / 귤 고르기 / python
·
Coding Test/Programmers
코딩테스트 연습 - 귤 고르기 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 . 모범 답안 def solution(k, tangerine): answer = 0 a={} for i in tangerine: if i in a: a[i]+=1 else: a[i]=1 a = dict(sorted(a.items(), key=lambda x: x[1], reverse=True)) for i in a: if k> Counter(["hi", "hey", "hi", "hi", "hello", "hey"]) Counter({'hi': 3, 'hey': 2, 'hello': 1}) Counter 생성자에 문자열을 인자로 넘기면 각 문자가 문자열에서 몇 번씩 나타나는지를 알려주는 객체가 반환됨. >>>..
Programmers / 2단계 / 예상 대진표 / python
·
Coding Test/Programmers
코딩테스트 연습 - 예상 대진표 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 . 모범 답안 def solution(n,a,b): round = 0 while a != b: round += 1 a = (a+1) // 2 b = (b+1) // 2 return round
Programmers / 2단계 / 점프와 순간 이동 / python
·
Coding Test/Programmers
코딩테스트 연습 - 점프와 순간 이동 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 . 모범 답안 def solution(n): answer = 1 while n > 1: answer += n % 2 n = n // 2 return answer def solution(N): return bin(N).count('1') N이 2의 제곱이면 처음 점프를 제외하고는 순간 이동으로 갈 수 있음 → 1이 하나인 이진수 건전지 사용량은 N을 이진수로 변환했을 때의 1의 개수