skinOptions.hljs
문제 / 회문 문자열 검사 / Python
·
coding test - python/기본기 문제
문제 제목: 회문 문자열 검사 회문 문자열 검사 N개의 문자열 데이터를 입력받아 앞에서 읽을 때나 뒤에서 읽을 때나 같은 경우(회문 문자열) 이면 YES를 출력하고 회문 문자열이 아니면 NO를 출력하는 프로그램을 작성한다. 단 회문을 검사할 때 대소문자를 구분하지 않습니다. ▣ 입력설명 첫 줄에 정수 N(1
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 모듈에는 제곱근을 반..
Programmers / 하샤드 수 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 하샤드 수 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12947/solution_groups?language=python3 나의 풀이 def solution(x): new_x = str(x) sum = 0 for i in new_x: sum += int(i) if x % sum == 0: return True else: return False
Programmers / 콜라츠 추측 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 콜라츠 추측 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12943 나의 풀이 def solution(num): cnt = 0 while num > 1: if num % 2 == 0: num = num/2 cnt += 1 elif num % 2 == 1: num = num*3 + 1 cnt += 1 if cnt == 500: cnt = -1 break return cnt 문제의 조건대로만 작성하면 쉽게 풀 수 있다. 다른 풀이 def collatz(num): for i in range(500): num = num / 2 if num % 2 == 0 else num*3 + 1 if num == ..
Programmers / 정수 내림차순으로 배치하기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 정수 내림차순으로 배치하기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12933 나의 풀이 1 def solution(n): n = list(str(n)) n.sort(reverse = True) return int("".join(n)) 나의 풀이 2 def solution(n): n = list(str(n)) n.sort(reverse = True) res = 0 for i in range(len(n)): res = res*10 + int(n[i]) return res
Programmers / 문자열 내 p와 y의 개수 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 문자열 내 p와 y의 개수 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12916 나의 풀이 def solution(s): p_cnt = 0 y_cnt = 0 s = s.upper() for i in range(len(s)): if s[i] == 'P': p_cnt += 1 elif s[i] == 'Y': y_cnt += 1 if p_cnt == y_cnt: return True else: return False count 를 이용해서도 풀 수 있을 거 같다