skinOptions.hljs
문제 / *수들의 합/ Python
·
coding test - python/기본기 문제
문제 제목: 수들의 합 N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i]+A[i+1]+…+A[j-1]+A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. ▣ 입력설명 첫째 줄에 N(1≤N≤10,000), M(1≤M≤300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. ▣ 출력설명 첫째 줄에 경우의 수를 출력한다. ▣ 입력예제 8 3 1 2 1 3 1 1 1 2 ▣ 출력예제 5 나의 풀이 n,m = map(int,input().split()) A = list(map(int,input().split())) cn..
문제 / 카드 역배치 / Python
·
coding test - python/기본기 문제
문제 제목: 카드 역배치 * 값 스왑 a,b = b,a 를 하면 a와 b의 값이 스왑(바뀐다)된다. *for _ in range() for _ in range(10) 언더바 _는 변수가 없이 그냥 반복만함 **카드 배치에 있어서 s부터e까지의 리스트를 선택한 뒤 해당 인덱스들의 값들을 바꾸기 위해선 횟수를 (e-s+1)//2 까지 수행하면 된다. 회문문자열과 조금은 다르지만 진짜 조금 비슷한 유형인거같다. 모범답안 a=list(range(21)) for _ in range(10): s, e=map(int, input().split()) for i in range((e-s+1)//2): a[s+i], a[e-i]=a[e-i], a[s+i] a.pop(0) for x in a: print(x, end=' '..
문제 / 두 리스트 합치기 / Python
·
coding test - python/기본기 문제
문제 제목: 두 리스트 합치기 오름차순으로 정렬이 된 두 리스트가 주어지면 두 리스트를 오름차순으로 합쳐 출력하는 프로 그램을 작성하세요. ▣ 입력설명 첫 번째 줄에 첫 번째 리스트의 크기 N(1
문제 / 숫자만 추출 / Python
·
coding test - python/기본기 문제
문제 제목: 숫자만 추출 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다. 만들어진 자연수와 그 자연수의 약수 개수를 출력합니다. 만약 “t0e0a1c2h0er”에서 숫자만 추출하면 0, 0, 1, 2, 0이고 이것을 자연수를 만들면 120이 됩니다. 즉 첫 자리 0은 자연수화 할 때 무시합니다. 출력은 120를 출력하고, 다음 줄에 120 의 약수의 개수를 출력하면 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. ▣ 입력설명 첫 줄에 숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다. ▣ 출력설명 첫 줄에 자연수를 출력하고, 두 번째 줄에 약수의 개수를 출력합니다. ▣ 입력예제 g0en2Ts8eSoft ▣..
문제 / 회문 문자열 검사 / 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 모듈에는 제곱근을 반..