skinOptions.hljs
Programmers / 3진법 뒤집기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 3진법 뒤집기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/68935 풀이 def solution(n): tmp = '' while n: tmp += str(n % 3) n = n // 3 answer = int(tmp, 3) return answer 다른 풀이 * divmod 함수 이용 x와 y를 받으면 x를 y로 나눈 몫과, 나머지가 들어있는 tuple을 리턴하게 된다. 튜플은 for in으로 순회 가능하다. def solution(n): answer = '' while n > 0: n, re = divmod(n,3)# n을 3으로 나눈 몫과 나머지 answer += str(re) retu..
Programmers / 최소직사각형 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 최소직사각형 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/86491 나의 풀이 def solution(sizes): '2번 지갑을 가로로 눕힌다 -> 가로 세로를 바꾸어줌' max_w = 0 max_h = 0 for i in sizes: if i[0] max_w: max_w = i[0] if i[1] > max_h: max_h = i[1] return max_w * max_h 다른 풀이 def solution(sizes): return max(max(x) for x in sizes) * max(min(x) for x in..
Programmers / 폰켓몬 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 폰켓몬 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/1845 나의 풀이 def solution(nums): select = len(nums) //2 set_list = set(nums) if len(set_list) > select: return select else: return len(set_list) 출력값으로 요구하는 것이 결국 "선택할 수 있는 폰켓몬 종류 개수의 최댓값 하나만 return 하면 됩니다." 라는 것이므로 선택할 수 있는 포켓몬의 수가 고를 수 있는 포켓몬 종류(set 함수로 중복 제거) 보다 작으면 선택할 수 있는 포켓몬 수를 리턴하고 그게 아니면 포켓몬 종류의 수를 ..
Programmers / 예산 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 예산 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12982 *문제 포인트가 최대로 몇개의 부서를 지원해줄 수 있는가 이기 때문에 여기에 맞추어 문제를 풀어야한다. 나의 풀이 def solution(d, budget): d.sort() cnt = 0 #예산에서 가장 작은 값들을 빼나가는 구조 for i in d: if i
Programmers / 소수 만들기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 소수 만들기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12977 나의 풀이 def solution(nums): a = [] cnt = 0 for i in range(0, len(nums) - 2): # 리스트의 숫자 세개를 고름(조합) for j in range(i + 1, len(nums) - 1): for x in range(j + 1, len(nums)): a.append(nums[i] + nums[j] + nums[x]) #약수 판별 isPrime = True for x in a: for i in range(2,x//2+1): if x % i == 0: isPrime = False ..
Programmers / 이상한 문자 만들기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 이상한 문자 만들기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12930 나의 풀이(오답) def solution(s): s = list(str(S)) cnt = 0 s[0] = s[0].upper() for i in range(1,len(s)): #공백을 만나면 cnt 초기화 if s[i-1] == ' ' and s[i] != ' ': cnt = 0 else: cnt += 1 if cnt % 2 == 0: s[i] = s[i].upper() return "".join(s) 테스트는 성공하나, 채점에서 자꾸만 틀렸다.. cnt를 이용해서 해당 문자가 홀수일 때와 짝수일 때 해당 조건에 맞도록..
Programmers / 내적 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 내적 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/70128 나의 풀이 def solution(a, b): sum =0 for i in range(len(a)): sum += a[i]*b[i] return sum 다른 풀이 def solution(a, b): return sum([x*y for x, y in zip(a,b)]) ※ 알아야 할 것 - zip함수를 이용하면 더 간편하다.
Programmers / *행렬의 덧셈 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 행렬의 덧셈 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12950 풀이 def solution(arr1, arr2): answer = [[] for x in range(len(arr2))] for i in range(len(arr1)): # 세로 크기 for j in range(len(arr1[i])): # 가로 크기 answer[i].append(arr1[i][j] + arr2[i][j]) return answer 처음 풀 때 중첩 for문을 이용하여 구현했는데, j에서 리스트 범위에 벗어난다고 오류가 떴었다. answer에도 해당 배열의 길이만큼 2차원배열을 만들어주지 않아서도 오류가 났..
Programmers / 음양 더하기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 음양 더하기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/76501 나의 풀이 def solution(absolutes, signs): for i in range(len(absolutes)): if signs[i] == True: pass else: absolutes[i] *= (-1) return sum(absolutes) 다른 풀이 def solution(absolutes, signs): return sum(absolutes if sign else -absolutes for absolutes, sign in zip(absolutes, signs)) zip함수란? zip(*iterable)은..
Programmers / 없는 숫자 더하기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 없는 숫자 더하기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/86051 나의 풀이 def solution(numbers): numbers.sort() num_list =[0,1,2,3,4,5,6,7,8,9] new_list = set(num_list) -set(numbers) return sum(new_list) 모범답안 def solution(numbers): return 45-sum(numbers) 문제 조건만 잘보면 생각보다 간단하게 풀 수 있다. 결론은 합만 구하면 되기때문이다.
Programmers / 최대공약수와 최소공배수 찾기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 최대공약수와 최대공배수 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12940 나의 풀이(시간초과) def solution(n, m): num = [n,m] a = [] b = [] #공통 약수 찾기 for i in range(1,max(num)): if n % i == 0 and m % i == 0: a.append(i) #공배수 찾기 for i in range(1,m*n+1): for j in range(1,m*n+1): if m * i == n * j: b.append(m*i) answer = [max(a),min(b)] return answer 아마 중첩 for문때문에 시간 초과를 한게..
Programmers / 정수 제곱근 판별 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 정수 제곱근 판별 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12934 나의 풀이(오답) def solution(n): answer = -1 for i in range(1,n//2 + 1): if i*i == n: answer = (i + 1) ** 2 return answer 다른 풀이 1. math 라이브러리 사용 import math def solution(n): x = math.sqrt(n) return (x+1)*(x+1) if x == int(x) else -1 [출처] [프로그래머스] LV1. 정수 제곱근 판별(파이썬python)|작성자 iamjuu math 모듈에는 제곱근을 반..