코테준비 11

[세무민의 코딩일기] 프로그래머스 : 우유와 요거트가 담긴 장바구니 문제 풀이

오늘 포스팅 할 내용은 Summer/Winter Coding(2019) 문제에 나온 우유와 요거트가 담긴 장바구니 문제를 풀어봤습니다. 1. 문제 설명 2. 문제 및 예시 3. 문제 풀이 이번 문제는 위의 내용처럼 우유와 요거트 2개를 모두 가지고 있는 CART_ID를 구하면 됩니다. 그렇기 때문에 조건식에 우유와 요거트가 각각 존재하는지 구분하여 검색해주면 됩니다. ## 방법 1 SELECT DISTINCT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Milk' AND CART_ID IN (SELECT DISTINCT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Yogurt') ## 방법 2 SELECT DISTINCT milk_tb.CART_I..

세무민의 알고가자 : 프로그래머스의 소수 만들기 문제 풀이

이번에 풀어 볼 문제는 소수 만들기! 이번 문제는 Summer/Winter Coding 2018년도 문제 중 1개라고 합니다. 무튼 풀어보죠 문제 설명 및 입출력 예시 풀이 이번 문제는 사실 itertools를 사용한다면 10분정도에 풀 수 있었던 문제라고 생각됩니다. 처음에는 당황했던 부분은 3개를 조합한 뒤 그 값이 소수인지 판별하는 것! 그렇지만 itertools에 있는 combinations을 이용한다면 쉽게 풀 수 있었습니다. combinations? 우선 combinations를 설명하면 조합이라고 생각하면 됩니다. 즉 배열에 존재하는 값을 선택하여 조합해주는 것을 말하죠 즉 arr[1,2,3] -> list(combinations(arr, 2))라고 가정하면 result = [1,2], [1..

세무민의 알고가자 : 프로그래머스 문자열 다루기 기본 문제 풀기

주말 약속을 나가기 전 잠깐 알고리즘 문제를 하나 풀었다. 오늘 풀어 본 문제는 문자열 다루기 기본! 말 그대로 기본 문제! 문제 설명 및 입출력 예시 풀이 나는 이 문제를 보자마자 바로 생각난 건 아스키코드! 이거 하나면 10분도 안되서 문제를 풀 수 있다. 숫자의 아스키코드는 0~9까지 즉 48~57! 요약하면 1. S의 길이가 4 또는 6이 만족하는 지 Check 2. 문자열에 내용이 ord(0) ~ ord(9)까지 속하는지 Check 코드 def solution(s): if len(s) != 4 and len(s) != 6: return False check = True for i in s: if ord(i)>= ord("0") and ord("9") >= ord(i): continue else:..

세무민의 알고가자 : 프로그래머스 같은 숫자는 싫어 문제 풀기 [부제 : for와 while의 시간 차이]

오늘 풀어 볼 문제는 같은 숫자는 싫어! 사실 이 문제는 그냥 포스팅 할 생각이 없었지만 for문과 while문의 속도 차이로 문제 풀이가 달라져서 포스팅 하게 됬다. 문제 설명 & 입출력 예시 풀이 이번 문제는 set을 사용하면 안되는 문제! set은 중복되는 값을 다 제거하기 때문! 따라서 이번 문제는 while문이나 for문으로 접근하는 것이 중요합니다. 문제가 쉬워서 말 그대로 같은 값이면 continue를 해주면 되겠죠? 코드 def solution(arr): answer = [] count = 0 while len(arr) > 0: temp = arr[0] if len(answer) == 0: answer.append(temp) elif answer[count] == temp: arr = ar..

세무민의 알고가자 : 프로그래머스 폰켓몬 문제 풀기

오늘 풀어볼 문제는 폰켓몬! 바로 시작하겠습니다! 문제 설명 & 제한 사항 입출력 예시 풀이 우선 문제를 재대로 해석하지 않으면 어렵게 느낄 수 있습니다. 진짜 문제를 이해했다면 쉬운 문제라고 생각이 들더라구요! 위의 예를 잘 보시면 nums라는 배열의 총 개수 -> N 찾으려는 폰캣몬의 개수 -> N / 2 폰켓몬은 중복이 될 수 없다! 여기서 살짝 문제 푸는 방법을 아시겠죠? 결국에는 nums의 개수를 2로 나눈 값만큼 포켓몬을 찾되 중복되는 값이 아닌 최대값을 찾으면 됩니다. 여기서 포인트는 중복되는 값을 제거해준 값도 확인해주면 됩니다. 결론적으로 1. list -> 중복값 제거해주기 2. 개수 일치하는지 비교 코드 def solution(nums): result = len(nums) // 2 n..