오늘의 목표
✔️ 개인과제 제출
✔️ 알고리즘
⏱️ 오늘의 일정
9:00 ~ 11:00 - 알고리즘 세션 강의
10:00 ~ 11:00 - 프로그래머스 코테 문제 풀기
11:00 ~ 14:00 - 알고리즘 유튜브 강의 듣기
15:00 ~ 19:00 - 알고리즘 유튜브 문제 풀기 ( 백준 )
19:00 ~ 21:00 - 캠프 알고리즘 문제 풀기
📜 알고리즘 세션 강의
9:00 ~ 11:00 - 알고리즘 세션 강의
알고리즘 세션 강의가 있었다.
오늘 내용은 배열과 리스트에 관한 내용이였다.
📜 알고리즘 세션 강의
10:00 ~ 11:00 - 프로그래머스 코테 문제 풀기
카드 뭉치
AlgorithmCodingTest/프로그래머스/1/159994. 카드 뭉치 at main · YamSaeng/AlgorithmCodingTest
This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - YamSaeng/AlgorithmCodingTest
github.com
📜 알고리즘 유튜브 강의 듣기
11:00 ~ 14:00 - 알고리즘 유튜브 강의 듣기
https://www.youtube.com/@BaaaaaaaaaaaaaaaaaaaaarkingDog
BaaarkingDog
www.youtube.com
미뤄두었던 알고리즘 강의를 들었다. 2강 까지 들었고 이제 매일, 적어도 1강 씩은 꾸준히 들을 계획!
📜 알고리즘 유튜브 문제 풀기 ( 백준 )
15:00 ~ 19:00 - 알고리즘 유튜브 문제 풀기 ( 백준 )
위 강의에서 2강까지 수강하고 나서 연습문제가 백준 사이트를 통해 제공되어서 풀었다.
📜 캠프 알고리즘 문제 풀기
19:00 ~ 21:00 - 캠프 알고리즘 문제 풀기
저번처럼 이번에도 세션을 듣고나서 문제가 제공되었다.
문제 1
**오늘, 두산 베어스와 기아 타이거스가 야구 경기를 하고 있습니다. 이제, 두산 베어스의 공격 차례입니다. 현재 주자는 아무도 없지만, 두산 베어스는 계속해서 1루타(안타)를 치기 시작합니다. 안타를 칠 때마다 주자들은 1루씩 진루합니다. 두산 베어스가 기아 타이거스보다 더 높은 점수를 얻으려면 최소 몇 개의 안타를 쳐야 할까요?
참고로, 두산 베어스와 기아 타이거스의 점수는 프로그램 실행 시 임의적으로 사용자가 줄 수 있으며 두산 베어스에게 1루타의 신이 강림이 되어 타석을 설 때마다 무조건 1루타를 치는 것이 확정이라고 가정해주세요.**
야구의 득점 조건:
- 타자는 홈에서 타석을 시작합니다.
- 타자는 홈 → 1루 → 2루 → 3루 → 홈으로 들어오는 순간 1점을 획득합니다.
function solutionOne(doosanScore, kiaScore) {
let answer = 0;
if (doosanScore > kiaScore) {
return answer;
}
else {
let sub = kiaScore - doosanScore;
answer = 4 + sub;
}
return answer;
}
문제 2
이진 배열 nums와 정수 k가 주어졌을 때, 최대 k개의 0을 1로 뒤집을 수 있다면 배열에서 연속된 1의 최대 개수를 반환하세요.
예시)
[입력]
const nums = [1,1,1,0,0,0,1,1,1,1,0]
const k = 2
[출력]
6
예시)
[입력]
const nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1]
const k = 3
[출력]
10
좀 억지로 푼거 같긴 하지만..
function solutionTwo(nums, k) {
let indexes = [];
let originalNums = [...nums];
let originalK = k;
let i = 0;
let sums = [];
let startIndex = 0;
for (let i = 0; i < nums.length; i++) {
if (nums[i] == 0) {
indexes.push(i);
nums[i] = 1;
startIndex = i;
k--;
}
if (k == 0) {
let sum = 0;
for (let j = 0; j < nums.length; j++) {
if (nums[j] == 1) {
sum += nums[j];
}
else {
if (sum == 0) {
continue;
}
sums.push(sum);
sum = 0;
}
}
if (sum > 0) {
sums.push(sum);
}
nums = [...originalNums];
k = originalK;
i = indexes[1] - 1;
indexes = [];
}
}
return Math.max(...sums);
}
🌙 하루를 마치며
주말동안 개인과제를 점검해서 오늘 제출했다. 텍스트 게임을 간만에 만들었는데, 정말 재밌는 시간이였다.
https://github.com/YamSaeng/RoguelikeJavascript
GitHub - YamSaeng/RoguelikeJavascript
Contribute to YamSaeng/RoguelikeJavascript development by creating an account on GitHub.
github.com
'내일배움캠프' 카테고리의 다른 글
[내일배움캠프][TIL] 17일차 - 알고리즘, Node.js 강의 (0) | 2024.08.28 |
---|---|
[내일배움캠프][TIL] 16일차 - 알고리즘, Node.js 강의 (0) | 2024.08.27 |
[내일배움캠프][TIL] 14일차 - 개인과제 (0) | 2024.08.23 |
[내일배움캠프][TIL] 13 일차 (0) | 2024.08.23 |
[내일배움캠프][TIL] 12일차 - 개인과제 (0) | 2024.08.21 |