전체 글 147

(JAVA) 백준 2581번 : 소수

https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 입력 입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과..

모던 자바스크립트 Deep Dive 읽기 - 11장 : 원시 값과 객체의 비교

원시 값의 경우, 변경 불가능한 값이며 한번 생성된 원시 값은 읽기 전용으로 변경할 수 없다. 변수에 값을 할당하고 재할당하는 경우, 값을 변경할 수 없기 때문에(불변성) 변수가 다른 메모리 공간을 가리키게 되고, 그곳에 값이 할당된다. 즉 변수의 식별자는 값을 가지는 것이 아니라 메모리 주소를 기억한다. 객체는 복합적인 자료구조로, 해시 테이블과 유사한 구조를 통해 구현된다. 객체는 참조 타입의 값으로, 원시 값과 다르게 변경 가능한 값이다. 객체는 원시 값의 식별자(값이 저장된 주소를 가리킴)와 다르게 값이 저장된 주소를 값으로 가진다. 원시 값과 객체를 복사한다면, 값을 새로 가지게 되는 원시 값과 다르게, 객체는 저장된 주소를 복제하므로, 같은 값을 가리키게 된다. 이러한 상황에서 객체의 값을 변..

Javascript 2022.03.10

모던 자바스크립트 Deep Dive 읽기 - 10장 : 객체 리터럴

자바스크립트는 객체 기반의 프로그래밍 언어이며, 원시 값을 제외한 나머지 값은 모두 객체다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며 프로퍼티는 키와 값으로 구성된다. 함수 또한 프로퍼티 값으로 사용될 수 있지만, 일반 함수와 구분하기 위헤 메서드라 부른다. 프로퍼티는 객체의 상태를 나타내는 값, 메서드는 프로퍼티를 참조하고 조작할 수 있는 동작으로 설명할 수 있다. 객체는 객체 리터럴, 생성자 함수, 메서드, 클래스를 통해 만들어지며, 가장 일반적이고 간단한 방법은 객체 리터럴을 사용하는 것이다. 객체 리터럴은 중괄호 안에 프로퍼티를 정의하여 사용한다. 프로퍼티는 키와 값으로 구성되며 키는 식별자 역할을 하고 값에는 자바스크립트에서 사용할 수 있는 모든 값이 들어간다. 프로퍼티 키는 심벌과 문자열..

Javascript 2022.03.10

모던 자바스크립트 Deep Dive 읽기 - 9장 : 타입 변환과 단축 평가

자바스크립트의 모든 값에는 타입이 존재하며, 이는 개발자의 의도에 따라 다른 타입으로 변환할 수 있다. 그러나 자바스크립트는 값을 평가하는 도중에 암묵적으로 타입이 변환되기도 한다. 이러한 상황을 피하기 위해, 명시적 타입 변환만을 사용해야 할까? 자바스크립트의 타입 변환을 제대로 이해한다면, 명시적 타입 변환보다 암묵적 타입 변환이 가독성 측면에서 더 좋을 수도 있다. 이를 위해 암묵적 타입 변환을 잘 이해해야만 한다. 산술 연산자와 비교 연산자는, 대체로 자신이 주어진 역할을 수행하기 위한 타입 변환을 진행하고, 이는 제어문 또한 마찬가지다. 제어문의 조건식에서는 논리적 참/거짓을 따지기 위해 값을 불리언 타입으로 변환하는데, 거짓으로 평가되는(Falsy 값) false, undefined, null..

Javascript 2022.03.10

모던 자바스크립트 Deep Dive 읽기 - 7장 : 연산자

기본적인 연산자의 사용법은 C-Family 언어와 유사하지만, Javascript는 동적 타입을 가진 언어이기 때문에 연산자 사용시에 타입 변환이 일어날 수 있다. 숫자 타입이 아닌 연산자에 +, - 단항 연산자를 사용하면, 피연산자를 숫자 타입으로 변환하여 반환한다. 그러나, +연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작한다. ex) 1 + '2' // - > '12' 비교 연산자는 값을 비교하는 동등 연산자와, 타입까지 비교하는 일치 연산자가 있다. 만약, 서로 다른 타입을 가진 값에 동등 비교 연산자를 사용하면, 암묵적 타입 변환이 일어난다. 따라서 Javascript에서 값을 비교할 땐, 일치 연산자를 사용하는 편이 좋다.

Javascript 2022.03.10

모던 자바스크립트 Deep Dive 읽기 - 6장 : 데이터 타입

Javascript의 데이터 타입은 총 7가지이다. 숫자,문자,불리언,undefined,null,심벌의 원시 타입과, 객체 함수 배열 등의 객체 타입이 있다. 먼저 숫자 타입은, 정수와 실수의 구분 없이 모두 부동소수점 형식의 실수로 처리된다. 문자열 타입은 '',"",``로 텍스트를 감싼 형태로 UTF-16의 전 세계의 대부분의 문자를 표현할 수 있다. ES6부터 템플릿 리터럴이 도입되었는데 ``(백틱)으로 문자열을 감싸서 표현하며, 이스케이프 시퀀스의 사용 없이, 공백, 탭 줄바꿈 등을 사용할 수 있다. 또한 ${} 안에 표현식을 삽입하여 간편하게 쓸 수 있다. undefined와 null은 변수에 값이 없음을 의미하는데, undefined는 Javascript 엔진이 사용하는 값이므로, 혼란을 피하..

Javascript 2022.03.10

모던 자바스크립트 Deep Dive 읽기 - 5장 : 표현식과 문

값이란, 표현식이 평가되어 생성된 결과를 의미한다. 10+20이라는 식이 있다면 결과인 30은 값, 10+20은 표현식이다. 문이란, 프로그램을 구성하는 기본 단위이자 실행 단위를 의미한다. 표현식은 문의 일부일 수도 있고, 그 자체로 문이 될 수도 있다. var x; 같은 선언문은 값으로 평가될 수 없으니 문이지만 표현식이 아니고, x = 1 + 2;는 값으로 평가될 수 있기 때문에 표현식이 될 수 있다.

Javascript 2022.03.10

모던 자바스크립트 Deep Dive 읽기 - 4장 : 변수

변수란, 값을 저장하기 위해 확보한 메모리 공간, 혹은 그 메모리 공간을 가리키기 위한 이름을 의미한다. 변수에 값을 저장하는 것을 할당, 변수에 저장된 값을 읽어들이는 것을 참조라고 한다. 식별자는 값을 구별해서 식별하는 고유한 이름이다. 식별자는 값이 아닌 메모리 주소를 기억한다. 변수를 사용하기 위해서는 선언을 해야하는데, Javascript에선 var, let, const 키워드를 사용한다. var 키워드는 변수를 선언할 시, 값을 할당하지 않아도 undefined 값이 자동으로 할당된다. 변수 선언은 런타임이 아닌, 이전 단계에서 먼저 실행된다. 이러한 Javascript의 특징을 변수 호이스팅이라 한다. 값의 할당은 런타임에 이루어진다.

Javascript 2022.03.10

(JAVA) 백준 1065번 : 한수

https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 입력받..

728x90