푼 문제들 오늘도 문자열 다루는 문제들을 풀었는데 역시나 쉽다. 문자열의 앞의 n글자 문제 풀이def solution(s, n): return s[:n]문자열 슬라이싱을 활용해서 s의 0번째 인덱스부터 n - 1번지 인덱스까지의문자를 포함하는 부분 문자열을 반환한다. 접두사인지 확인하기 문제 풀이def solution(s, i): def makePrefixList(s): res = [] for i in range(len(s)): res.append(s[:i]) return sorted(res) return 1 if i in makePrefixList(s) else 00 ~ 문자열의 길이의 범위에 해당하는 인..
푼 문제들 파이썬은 문자열 다루기가 유독 쉬운 느낌이다. 배열 만들기 5 문제 풀이def solution(intStrs, k, s, l): res = [] for i in intStrs: # intStrs의 요소를 순회하며 slice = int(i[s: s+l]) # 조건에 따라 자른 문자열을 정수로 변환한 값을 구하고 if slice > k: res.append(slice) # 해당 값이 k보다 크면 res에 추가한다 return res슬라이싱한 문자열을 정수로 변환해서 비교한다. 부분 문자열 이어 붙여 문자열 만들기 문제 풀이def solution(string, parts): res = '' for i in range(len(string..
푼 문제들 간단한 논리 연산 문제 풀이def solution(x1, x2, x3, x4): return (x1 or x2) and (x3 or x4)or 연산은 둘 중 하나만 true여도 true를 반환하고,and 연산은 둘 다 true여야 true를 반환한다. 주사위 게임 3 문제 풀이def solution(a, b, c, d): # 주사위 값 오름차순 정렬 dice = sorted([a, b, c, d]) # 모든 주사위 값이 같은 경우 if dice[0] == dice[1] == dice[2] == dice[3]: return 1111 * dice[0] # 세 개의 주사위 값이 같고 나머지 하나가 다른 경우 if dice..
푼 문제들 수열과 구간 쿼리 4 문제 정답def solution(arr, queries): for query in queries: s, e, k = query for i in range(s, e + 1): if i % k == 0: arr[i] += 1 return arrs, e, k = query range(a, b) 배열 만들기 2 문제 정답def solution(l, r): res = [] for i in range(l, r + 1): if not set(str(i)) - set(['0', '5']): res.append(i) return res if res..
푼 문제들 마지막 두 원소 문제 정답def solution(l): l.append(l[-1]-l[-2] if l[-1]>l[-2] else l[-1]*2) return l l[-n] append()함수로 배열에 값을 더해줄 수 있다. 수 조작하기 문제 정답def solution(n, control): c = {'w':1,'s':-1,'d':10,'a':-10} for i in control: n+=c[i] return n if~elif문을 이용해서 구현할 수도 있지만딕셔너리를 이용해 간결한 코드로 구현할 수 있다. 수 조작하기 2 문제 정답def solution(numLog): c = {1: "w", -1: "s", 10: "d", -10: ..
푼 문제들 코드 처리하기 정답def solution(code): mode = 0 ret = "" for idx, char in enumerate(code): if char == "1": mode = 1 - mode else: if mode == 0: if idx % 2 == 0: ret += char else: if idx % 2 == 1: ret += char return ret if ret else "EMPTY"문제가 길어서 꽤나 당황스러운데 기초문제여서 그렇게 어렵진 않..
푼 문제들 n의 배수 문제 정답def solution(num, n): return int(num % n == 0) 조건문은 성립할 떄는 true, 아닐 때는 false값을 가지는데bool형 데이터를 int형으로 바꾼다면.true는 1, false는 0의 값을 가지게 된다. num이 n으로 나누어떨어진다면 1, 아니면 0을 출력한다. 공배수 문제 정답def solution(number, n, m): return int(number % n == 0 and number % m == 0)and 연산자는 양쪽의 조건문이 다 성립해야 true를 반환한다. 홀짝에 따라 다른 값 반환하기 문제 정답def solution(n): if n % 2: return sum(rang..
푼 문제들 문자열 섞기 문제 정답def solution(str1, str2): answer = [] for i in range(len(str1)): answer.append(str1[i]) answer.append(str2[i]) result = "".join(answer) return result 배열과 반복문을 이용해서 풀 수 있는 문제이다. str1과 str2의 길이는 같으므로 for문에 들어가는 range()의 인자값으로len(str1)이 들어가든 len(str2)가 들어가든 상관없다. 배열.append(데이터값)는 데이터값을 배열에 추가하는 함수이다. 빈 배열(answer)을 하나 생성해 두 문자열의 요소를 번갈아서 추가해준다. a = ["..