전체 글 56

백준 18234 당근 훔쳐 먹기

https://www.acmicpc.net/problem/18234 18234번: 당근 훔쳐 먹기 첫 번째 줄에 N(1 ≤ N ≤ 200,000)과 T(N ≤ T ≤ 100,000,000)가 공백으로 구분되어 주어진다. 오리는 당근의 맛을 충분히 높이기 위해 항상 N이상인 T일 동안 재배한다. 다음 N개의 줄에 걸쳐서 i+1번째 www.acmicpc.net 시험기간이지만 알고리즘을 풀고 싶었다,, 사실 CS 재미도 없고 하기 싫어서 풀었다 ㅎㅎ,, 죄송합니다 출처 다 읽고 해결과정 노트에 적고 '어.. 이거 쉽게 풀겠는데? 왜 골3이지' 이 생각 했는데 시간초과 📌 해결순서 2번째 예시를 이용하면 파란색 동그라미를 친 7 + 24 + 38 = 69 가 토끼가 먹을수 있는 당근의 맛 최대 합이다. 토끼는 ..

algorithm/Greedy 2022.10.13

백준 13549 숨바꼭질 3

https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 📌 해결순서 이번에 풀 때도 마찬가지로 times 배열을 만들어서 방문 표시와 걸리는 시간의 표시를 같이 묶어서 하려고 했는데 이 문제에서는 그렇게 하면 안된다. 5에서 첫 번째 이동을 예시로 들면 (4, 6, 10) 으로 이동할 수 있는데 4, 6 은 시간이 +1 되기 때문에 상관이 없지만 10은 방문 했음에도 불구하고 +0을 하기 때문에 여전히 방문하지 않은것..

백준 2583 영역 구하기

https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 복잡해 보이는 것 같지만, 사실 이전에 풀어봤던 안전영역과 유기농 배추 등등,, 의 기본 그래프 탐색 문제와 비슷하다 근데 좀 오래 걸렸는데 변명 아닌 변명을 좀 해보자면.. 1. 문제에서 좌표를 주길래 2차원 배열을 만들 때, 행과 열에 주어진 m, n에 각각 + 1 을 했음 2. 하지만 만든 배열의 인덱스만 사용해도 되는 문제였다,, 좌표가 아닌 영역을 묻는 문제이기 때문에..

[DEEP DIVE] 9. 타입 변환과 단축 평가

Js에서 표현식의 평과 결과로 만들어지는 모든 값은 타입을 가진다. 앞에서는 어떤 타입이 있는지, 타입이 왜 필요한지에 대해서 알아봤다. 이번에는 타입의 변환에 대해서 알아보자~ 1. 타입 변환? 📌 명시적 타입 변환 var age = 24; var str = age.toString(); console.log(typeof str, str); // String 24 console.log(typeof x , x); // number 24 위의 코드와 같이 코드 작성자가 의도적으로 변수의 타입을 변환하는 것을 명시적 타입 변환 이라고 한다. 📌 암묵적 타입 변환 var x = 10; console.log(typeof x, x) // number 10 var str = x + '' // 10 + '' conso..

javascript/DeepDive 2022.10.03

[DEEP DIVE] 8.제어문

일반적으로 코드는 위에서 아래로 순차적으로 실행 된다. 제어문을 사용해서 코드 실행순서를 인위적으로 변경할 수 있다, JUMP 시키는 것! 1. 블록문 0개 이상의 문을 중괄호로 묶은 것 {} 코드 블럭으로도 불림 Js는 블록문을 하나의 실행 단위로 취급 => 함수가 있고 그 함수를 호출 한다면 호출된 함수가 하나의 실행 단위가 된다 제어문, 함수를 정의할때 일반적으로 사용한다! 변수를 선언할때도 블록문을 사용해서 할 수 있지만 굳이... 하지 않는다 { var age = 24; } if (age >= 20){ console.log("성인 입니다."); }else{ console.log("성인 아닙니다."); } function sum(a, b){ return a * b; } 2. 조건문 불리언 값으로 ..

javascript/DeepDive 2022.09.30

[DEEP DIVE] 7. 연산자

표현식을 통해서 값을 생성하고 사용 되려면 우선 표현식 안에서 연산이 되야 한다. Js의 연산자에 대해서 알아보자~! 연산자 하나 이상의 표현식을 대상으로 산술 할당 비교 논리 타입 지수 연산을 수행하고 하나의 값을 생성한다 연산자 표현식도 표현식이다 1. 산술 연산자 수학적 계산을 수행하고 새로운 숫자 값을 만든다 산술 연산이 불가능한 경우에는 NaN 반환 피연산자의 수에 따라 이항과 단항으로 나뉨 1️⃣ 이항 산술 피연산자의 값을 변경하는 부수효과 X var num = 5 + 2; console.log(num) // 7 num 변수는 이제 7이라는 값이 저장된 메모리 주소를 기억하고 있지만 피연산자인 5와 2의 값은 그대로 2️⃣ 단항 산술 증가(++) 감소(--) 연산자는 피연산자의 값을 변경 va..

javascript/DeepDive 2022.09.28

프로그래머스 조이스틱

https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 해결 순서 문제 다 읽자마자 한 단어마다 A로 다시 이동하는데 필요한 조이스틱 이동 횟수를 담아두는 배열을 만들어 두면 편할것 같다는 생각이 들어서 우선 만들고 시작했다. 이제 해결해야 되는건 좌, 우 이동을 어떻게 할것이냐 인데,, 좀 까다롭다 이미 A로 만들어져 있는 문자에 대해선 조이스틱을 움직일 필요가 없으므로, 좌 우 이동만 하면 되는데 문제는 어떻게 이동 횟수를 최소로 만들것이냐에 ..

algorithm/Greedy 2022.09.28

프로그래머스 체육복

https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 해결순서 여벌의 체육복이 있는 학생이라고 해서 무조건 도난당한 학생에게 체육복을 빌려줄 수 없음에 유의해야 했다 여벌의 체육복이 있어도 그 학생이 체육복을 도난 당했으면 체육복이 현재 1개밖에 없기 때문에 빌려줄 수 없다. 그래서, 모든학생이 체육복을 하나씩 다 가지고 있다고 가정하고 출발 해봤다. 도난 당하면 -1, 여분이 있는 학생이면 +1 그리고, 여분이 있는데 도난 낭했으면 +1 -1 ..

algorithm/Greedy 2022.09.28

[DEEP DIVE] 6. 데이터 타입

5. 표현식과 문 [DEEP DIVE] 5. 표현식과 문 Js나 다른 컴퓨터 공학 전반에서 자주 사용되는 용어의 의미에 대해서 주의 깊게 살펴보자! 1. 값 평가 ❔ 식을 해석해서 값을 생성하거나, 참조 하는 것 10 + 20; 위의 식은 평가되어 숫자 값 30을 hwdev.tistory.com 여기서, 모든 값은 데이터 타입을 가진다고 했었다 Js의 데이터 타입에 대해서 자세히 알아보자! 1. 숫자 타입 C, Java 는 정수, 실수, 차지하는 메모리 공간에 따라 int, float, double등 다양한 숫자 타입이 존재한다 Js는 하나의 숫자 타입만 존재한다 var inteager = 10; var double = 10.12; var negative = -20; 정수만 표현하기 위한 데이터 타입이 ..

javascript/DeepDive 2022.09.26

[DEEP DIVE] 5. 표현식과 문

Js나 다른 컴퓨터 공학 전반에서 자주 사용되는 용어의 의미에 대해서 주의 깊게 살펴보자! 1. 값 평가 ❔ 식을 해석해서 값을 생성하거나, 참조 하는 것 10 + 20; 위의 식은 평가되어 숫자 값 30을 생성 값은 식이 평가가 완료되면 생성되는 결과를 의미한다! 모든 값은 데이터 타입을 가진다 (String, Number, Object, Class, Function) 변수에 저장되는 것은 식이 아닌 평가가 완료된 식이 만들어 내는 결과 값이다 2. 리터럴 사람이 이해할 수 있는 문자 or 기호로 값을 생성 하는 표기법 Js 엔진은 런타임 시점에 리터럴을 평가 하여 값을 생성한다 한마디로, 값을 생성하기 위해서 미리 약속한 표기법이다 Number : 10, 10.5, 0x41 '10' 이라는 사람이 이..

javascript/DeepDive 2022.09.26