profile
게임 클라이언트 개발자 지망생의 TIL

[SWEA] 10507번 : 영어 공부

🔗 문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXNQOb3avD0DFAXS ✍️ 문제 풀이 해당 문제는 이진 탐색 문제로, 각 날짜에서 시작했을 때, 공부 안 한 날을 체크 가능한 횟수를 넘기지 않는 날짜 중 최장 기간이 되는 날짜를 찾아야 한다. 그 이후 각 날짜에서 시작했을 때 최장 기간들을 비교해 그 중에서도 가장 긴 기간이 정답이 된다. 1) 공부한 날짜를 입력 받아 days 배열에 삽입하고, 가장 긴 연속 날짜를 저장할 maxPeriod를 선언해 0으로 초기화한다. 2) blanks 배열에 첫 날짜부터 다른 날짜까지 공백(문제 안 푼 날)을 저장한다. ex. ([1]에는 days[0] ~ days[1] 사이의 안 푼 일수) 3) 입력 받은 데이터들을 토대로 가장 긴 연속 기간을 찾기 위한 이

2023년 2월 10일
·
0개의 댓글
·

[SWEA] 9843번 : 촛불 이벤트

🔗 문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXGBKzuaPOoDFAXR ✍️ 문제 풀이 해당 문제는 이진 탐색 문제로, 현재 양초 개수가 n개라고 할 때, (K * (K+1)) / 2 = n 을 만족하는 K(== 단의 수)의 값을 찾아야 한다. 1) 현재 가지고 있는 양초 개수 n을 입력 받는다. 2) 입력 받은 n으로 만들 수 있는 단의 수 K를 찾기 위한 이진탐색을 한다. start = 1, end = sqrt(2 * n)으로 초기화 한다. K단에는 (K(K+1)) / 2 개의 양초가 필요하다. 따라서 (K(K+1)) / 2 = n (K^2 + K) / 2 = n ➡️ (K^2+K) = 2n K를 제외하고 생각하면 K^2 < 2N ➡️ **K <

2023년 2월 9일
·
0개의 댓글
·

[SWEA] 11446번 : 사탕 가방

🔗 문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXdHxTNqC2IDFAS5 ✍️ 문제 풀이 해당 문제는 이진 탐색 문제로, 어떤 조건을 만족할 때의 가방 개수의 최대치를 구해야 하기 때문에 파라메트릭 서치로 풀 수 있다. 1) 사탕 종류 개수 n과 가방에 정확히 들어있어야하는 사탕 개수 m을 입력받아 저장한다. 2) candies 벡터에 각 사탕 종류별로 몇 개의 사탕이 있는지 입력받아 저장한다. 이 때 가장 개수가 많은 종류의 사탕의 개수를 max에 저장한다. 3) 이진 탐색(파라메트릭 서치)을 실행해 end가 start보다 작지 않은 동안 아래 과정을 반복한다. start = 0, end = max로 지정한다. 가방을 하나도 못 만들 경우가 **

2023년 2월 8일
·
0개의 댓글
·