
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.print(a+b); } }

class Solution { public int solution(int[] array) { int answer = 0; for(int i=0; i

7. 삼항 연산자(ternary operator) 삼항 연산자는 유일하게 피연산자를 세 개를 가지는 조건 연산자입니다. 삼항 연산자의 문법은 다음을 따릅니다. 조건식 ? 반환값1 : 반환값2 물음표 앞의 표현식에 따라 결과값을 반환합니다. 참이면 반환값 1을 반환하고 거짓이면 반환값 2를 반환합니다. 삼항 연사자는 짧은 if/eslse 문 대신 사용할 수 있습니다. 이는 곧 코드를 간결하게 만들어 줍니다. 8. 문자열 연산자(string operator) PHP에서 문자열 연산자를 사용하여 문자열을 연결할 수 있습니다. 이 연산자는 얼핏 보기에는 연산자가 아닌 것처럼 보이지만 양쪽에 위치한 두 문자열을 연결하는 역할을 합니다. 9. 배열 합집합 연산자(array union operator) 배열 합집합 ..

PHP는 다양한 연산을 위해 많은 종류의 연산자를 제공하고 있습니다. 연산자(operator)의 종류는 다음과 같습니다. 1. 산술 연산자(arithmetic operator) 산술 연산자는 사칙 연산을 다루는 가장 기본적이면서도 많이 사용하는 연산자입니다. 산술 연산자는 모두 두개의 피연산자를 가지는 이항 연산자로 결합 방향은 왼쪽에서 오른쪽입니다. 산술 연산자 설명 + 왼쪽의 피연산자에 오른쪽 피연산자를 더합니다. - 왼쪽의 피연산자에 오른쪽 피연산자를 뺍니다. * 왼쪽의 피연산자에 오른쪽 피연산자를 곱합니다. / 왼쪽의 피연산자에 오른쪽 피연산자를 나눕니다. % 왼쪽의 피연산자에 오른쪽의 피연산자를 나눈 후 그 나머지를 반환합니다. ** 왼쪽 피연산자의 값에 오른쪽 피연산자의 값을 제곱합니다. PH..

상수(constant) 상수란 변수와 마찬가지로 데이터를 저장할 수 있는 메모리 공간을 의미합니다. 하지만 상수가 변수와 다른 점은 한 번 선언되면 스크립트가 실행되는 동안 그 데이터를 변경하거나 해제(undefined)할 수 없다는 점입니다. PHP에서는 define() 함수를 사용하여 상수를 선언할 수 있습니다. define(상수이름,상숫값,대소문자구분여부) define() 함수는 첫 번째 인수로 상수의 이름을 전달받고 두 번째 인수로 그 값을 전달받습니다. 그리고 세 번째 인수는 상수의 이름이 대소문자를 구분하는가를 설정할 수 있습니다. 기본값은 false로 대소문자를 구분합니다. 다음은 예시입니다. 위와 같은 경우는 대소문자를 구분합니다. echo Hello;가 아닌 echo hello; 실행 시..

변수(variable)는 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간입니다. 즉 변수란 데이터를 저장할 수 있는 메모리 공간이며 저장된 값은 변경될 수 있습니다. PHP에서는 달러($) 기호를 사용하여 변수를 선언합니다. $변수이름 = 초기값; PHP는 C언어를 기반으로 만들어졌지만 변수선언에서 차이점을 보입니니다. 바로 변수의 선언에 타입을 명시하지 않습니다. PHP의 변수 타입은 변수에 대입하는 값에 따라 자동으로 결정됩니다. 변수 이름 생성 규칙은 다음을 따릅니다. 1. 영문 대소문자, 숫자, 언더스코어(_)로만 구성됩니다. 2. 숫자로 시작할 수 없습니다. 3. 공백을 포함할 수 없습니다. 4. PHP에서 미리 정의한 $this는 사용할 수 없습니다. 5. 대소문자를 구분합..

PHP란? PHP(PHP: Hypertext Preprocessor)는 C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어입니다. PHP는 동적 웹 페이지를 쉽고 빠르게 만들 수 있도록 해주는 데 그 목적이 있으며 PHP로 작성된 코드를 HTML 코드 안에 추가하면 웹 서버는 PHP 코드를 해석하여 동적 웹 페이지를 생성합니다. 더보기 https://www.php.net/ Dynamic Web Page는 서버가 사용자의 요청을 해석하고 해당 데이터를 가공하여 생성하는 웹 페이지를 의미합니다. 따라서 사용자는 상황에 따라 달라지는 웹 페이지를 볼 수 있습니다. 1. PHP 장단점 1-1. 장점 주요 운영체제와 대부분의 웹 서버에서 지원합니다. 다른 프로그래밍 언어보다 직관적으로 코드..

(4)에서 Telegram Webhook를 이용해 사용자가 메시지를 보냈을 때 봇이 바로 응답할 수 있게 만들었습니다. 그러나 그대로 사용한다면 이 봇은 영원히 BTCUSDT만 응답할 것입니다. 그래서 사용자가 요청하는 코인의 현재가를 요청할 수 있게 만들어야 합니다. Binance만 요청받기에는 부족한 부분이 있어 국내 대표코인 거래소인 Upbit도 함께 사용할 것입니다. 먼저 커맨드와 문자열을 분리하려면 정규식을 사용해도 되지만 저는 간단하게 String.substring()을 이용할 것입니다. 또한 Upbit와 Binance와 요청하는 방식이 다르기 때문에 분류되어야합니다. 그래서 String.includes()도 함께 사용하겠습니다. Upbit GET Upbit에 GET방식으로 요청하는 방식은 다..

1. indexOf() : 특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스를 반환하며 만약 찾지 못했을 경우 -1을 반환합니다. const str = 'Hello, JavaScript' console.log(str.indexOf('J')) console.log(str.indexOf('l')) console.log(str.indexOf('l',3)) indexOf(찾을 특정 문자, 시작할 위치)로 사용할 수 있습니다. 시작할 위치의 경우 생략이 가능하며 생략할 경우 0번째 즉 문자열의 처음부터 찾기 시작합니다. 출력을 해보면 다음과 같은 결과를 얻을 수 있습니다. J의 위치는: 7 l의 위치는: 2 l의 위치는: 3 여기서 주목해야 할 것은 l의 위치입니다. 2번째 출력문과 3번째 출력문은 같은 l를..

(1) ~ (3)를 통하여 Telegram 봇을 이용하기 위한 기초를 마쳤습니다. 이제는 원하는 봇을 만들 시간입니다. 저는 트레이딩을 하는 사람으로 Telegram을 통해 코인의 실시간 가격을 조회할 수 있는 봇을 만들겠습니다. 봇에게 Command를 입력하면 해당 코인의 가격이 응답으로 돌아오게 됩니다. 저는 대표적인 해외거래소 Binance를 이용하겠습니다. Binance API에 보다 자세한 것은 더보기를 참조하십시오. 더보기 https://binance-docs.github.io/apidocs/spot/en/#change-log Binance API를 이용하는 방법은 여러가지가 있습니다. 저는 여기서 간단하게 보안요청이 필요없는 Endpoints를 이용하겠습니다. Binance API는 보완요청..

(2)에서 실시간 응답을 위해 Webhook를 설정하는 방법을 알아봤습니다. Telegram은 Commands 기능을 제공합니다. 보다 자세한 것은 Telegram API docs 참조하십시오. 더보기 https://core.telegram.org/bots/api#setmycommands 나만의 Command를 설정하기 위한 방법은 두 가지가 있습니다. 첫 번째는 바로 봇을 만들 때 채팅했던 @BotFather를 이용하는 것입니다. 그리고 남은 한 가지는 API를 이용하는 것입니다. 여기서는 두 방법을 모두 제시합니다. 먼저 @BotFather를 이용한 방법부터 알아보겠습니다. 1. @BotFather @BotFather에게서 사용가능한 Commands를 알고싶다면 /help를 요청합니다. 그럼 다음과 ..

(1)에서 직접적으로 메시지를 보내는 것이 아닌 Apps Script를 이용해 보내는 방법을 확인했습니다. 보다 더 자세한 것은 Telegram API docs 참조하십시오. 더보기 https://core.telegram.org/bots/api Apps Scirpt를 통해 내가 봇에게 메시지를 보냈을 때 봇은 이를 업데이트할 수 있어야 합니다. Telegram API에 따르면 업데이를 받는 방법은 두 가지가 존재하며 하나는 getUpdates 메서드이고 하나는 웹 후크를 이용해 업데이트 할 수 있다고 합니다. getUpdates 메서드인 경우 긴 폴링을 사용하여 들어오는 경우 권장하며 실시간 답장을 원한다면 웹 후크를 이용해야 합니다. 많은 기능을 제공해주는 Google Sheets는 웹 앱을 제공하므로..