본문 바로가기

전체 글

(208)
그룹별 조건에 맞는 식당 목록 출력하기 (프로그래머스 SQL) https://school.programmers.co.kr/learn/courses/30/lessons/131124 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Join을 ID에 대해서 실행하고 where의 조건으로 식당 리뷰를 제일 많이 적은 고객의 리뷰들만 보여준다. SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE,'%Y-%m-%d') REVIEW_DATE FROM REST_REVIEW R JOIN MEMBER_PROFILE M ON M.MEMBER_ID = R.MEMBER_ID WHERE M.M..
주문량이 많은 아이스크림들 조회하기(프로그래머스 SQL) https://school.programmers.co.kr/learn/courses/30/lessons/133027 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이스크림 맛 별로 묶어서 주문량을 구하고 내림차순으로 정렬해준다. 맛 별로 주문량을 출력하면 안 되니까 정렬 기준으로만 사용해줬다. -- 코드를 입력하세요 with NEWJULY as ( SELECT FLAVOR,SUM(JULY.TOTAL_ORDER) AS TOTAL_ORDER FROM JULY GROUP BY FLAVOR ) SELECT F.FLAVOR AS FLAVOR FROM FIRST_..
수 고르기 (백준 20186) 문제 설명을 읽으면 선택하는 수의 순번이 중요하다고 생각할 수 있지만 선택하는 숫자들의 순번은 중요하지 않다. import sys input = sys.stdin.readline n,m = map(int, input().split()) arr= list(map(int, input().split())) arr.sort() print(sum(arr[-m: ])-m*(m-1)//2)
모두의 마블 (백준 12845) 주어진 숫자들 중에서 가장 큰 수를 사용해서 계속 합쳐 나가면 제일 높은 금액을 획득 가능하다. import sys input = sys.stdin.readline n= int(input()) arr =list(map(int, input().split())) print(sum(arr) +(n-2)*max(arr))
블로그2(백준 20365) 그리디 알고리즘 문제인데 처음에 규칙이 잘 안 보여서 단순한 경우부터 생각해 보았다. 문제들을 색칠할 때 R,B중 하나로 칠해야 하는데 R->B, B->R의 횟수 중에서 최댓값이 정답과 관련이 있다는 것을 알게 되었다. import sys input = sys.stdin.readline n = int(input()) arr =str(input()) btor,rtob = 0,0 for i in range(n-1): if arr[i]== 'R' and arr[i+1] =='B' : rtob += 1 elif arr[i]== 'B' and arr[i+1]== 'R' : btor += 1 print(max(rtob,btor)+1 )
카드 문자열(백준 13417) 차례대로 주어지는 알파벳을 기존의 문자열의 맨 앞 혹은 맨 뒤에 삽입하여 사전상 가장 앞에 위치하는 문자열을 만든다. import sys input= sys.stdin.readline tcase = int(input()) for _ in range(tcase) : stringcnt = int(input()) string = list(map(str, input().split())) newstring = [] for i in range(len(string)) : if i == 0: newstring.append(string[i]) else : if newstring[0] < string[i] : newstring.append(string[i]) else : newstring.insert(0, string[i..
행복 유치원(백준 13164) 처음에는 문제풀이 방법이 잘 떠오르지 않아 고민이 되었다. 그러다가 배열로 입력 받은 숫자들의 차이에 문제 해결의 실마리를 찾았다. 정렬된 배열에서 인접한 요소들간의 값의 차이를 모아서 새로운 배열로 만들고 그 중에서 최소의 값을 갖는 수 몇 개를 추출하면 된다. 예를 들어서 5명의 학생을 3 그룹으로 나눠야 하면, 학생들의 키 차이 배열에서 5-3만큼의 수를 선택하는 것이다. import sys input = sys.stdin.readline n,m = map(int, input().split()) arr = list(map(int, input().split())) newarr = [] for i in range(len(arr)-1) : newarr.append(arr[i+1]-arr[i]) newar..
서강근육맨(백준 20300) 하루 2개의 운동 기구를 사용해야 하니 2개씩 묶어서 합을 계속 확인해 나간다. import sys input = sys.stdin.readline n = int(input()) arr = list(map(int, input().split())) ans = 0 arr.sort() if len(arr)%2 ==0 : for i in range(len(arr)//2): ans = max(ans, arr[i]+ arr[n-i-1]) print(ans) else : ans =arr[-1] for i in range((n-1)//2): ans = max(ans, arr[i]+ arr[n-i-2]) print(ans )