분류 전체보기

    이진변환 반복하기→ 특정 요소 제거★★

    나의 풀이 def solution(s): cycle=0 c=s zero_cnt=0 while len(c)!=1: cycle+=1 remove_set=['0'] zero_removed = [i for i in c if i not in remove_set] zero_cnt+=len(c)-len(zero_removed) digit=len(zero_removed) binary=str(bin(digit)) binary=binary[2:] c=binary return [cycle, zero_cnt] 다른 사람의 풀이 def solution(s): a, b = 0, 0 while s != '1': a += 1 num = s.count('1') b += len(s) - num s = bin(num)[2:] return..

    올바른 괄호 →예외★★ + count로 접근

    나의 풀이 import java.util.*; class Solution { boolean solution(String s) { Stack stack = new Stack(); for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == '(') { stack.push(s.charAt(i)); } else { try { stack.pop(); } catch (EmptyStackException e) { return false; } } } return stack.isEmpty(); } } 다른사람의 풀이1 import java.util.Stack; class Solution { boolean solution(String s) { boolean answer = tr..

    올바른 괄호 → 에러를 유도 + refactoring★★

    나의 풀이1 def solution(s): stack=[] for i in range(len(s)): if s[i]=='(': stack.append(s[i]) elif s[0]==")": return False else: try: stack.pop() except IndexError as idx: return False if len(stack)==0: return True return False 나의 풀이2 def solution(s): stack=[] for i in range(len(s)): if s[i]=='(': stack.append(s[i]) else: try: stack.pop() except IndexError as idx: return False if len(stack)==0: retu..

    최솟값 만들기 → 동일 for문 안에서 서로 반대로 곱하기★★

    나의 풀이 import java.util.*; public class Solution { public int solution(int []A, int []B) { int answer = 0; Arrays.sort(A); Arrays.sort(B); for (int i = 0; i < A.length; i++) { answer += A[i] * B[B.length - 1 - i]; } return answer; } } ▶ A배열과 B배열을 모두 오름차순으로 정렬한 다음에 ▶ 동일 for문 안에서 ▶A배열은 좌측에서 우측으로, B배열은 우측에서 좌측으로 움직이면서 곱한다.