본문 바로가기

반응형

분류 전체보기

(218)
[LeetCode] Add Binary | 난이도: Easy 문제 주어진 2진수 문자열 a, b의 합을 2진수 문자열로 리턴. 예시 Example 1: Input: a = "11", b = "1" Output: "100" Example 2: Input: a = "1010", b = "1011" Output: "10101" 답안 class Solution { public String addBinary(String a, String b) { StringBuilder sb = new StringBuilder(); int i = a.length() - 1; int j = b.length() -1; int sum = 0; while (i >= 0 || j >= 0) { if (j >= 0) sum += b.charAt(j--) - '0'; if (i >= 0) sum +=..
[LeetCode] Plus One | 난이도: Easy 문제 주어진 정수 배열 digits에 있는 값을 하나의 숫자로 보고 1을 더한 결과를 배열로 리턴한다. 배열에 담기는 숫자는 0부터 9까지이다. 만약 배열에 값 9만 담겨 있다고 가정해보자.( digits[9] ) 여기에 1을 더하면 10이 된다. 따라서 결과는 digits[1, 0]이 된다. 이렇게 자릿수가 바뀔 수 있다는 점에 유의해야 한다. 예시 Example 1: Input: digits = [1,2,3] Output: [1,2,4] Explanation: The array represents the integer 123. Incrementing by one gives 123 + 1 = 124. Thus, the result should be [1,2,4]. Example 2: Input: dig..
My University Sacrificed Ideas for Ideology. So Today I Quit 이 글은 2021년 9월 8일 작가이자 전 월스트리트 저널, 뉴욕 타임스 에디터였던 Bari Weiss가 운영하는 웹사이트 bariwess.substack.com에 실린 기사를 번역한 것이다. 기사는 포틀랜드 주립대학의 철학과 조교수인 Peter Boghossian에 대한 이야기이다. 그는 대학이 비이성적인 사상을 강제하여 학생들이 자유롭게 사고하지 못하게 한다고 비난했다. 이를 통해 그는 대학 및 교내 학생들에게 비난을 받게 되고 결국 학교를 사임한다. Peter Boghossian은 포틀랜드 주립대학에서 지난 십여년간 철학을 가르쳤다. 아래의 내용은 금일 아침(2021년 9월 8일 기준) 대학 교무처장에게 보낸 서신으로 그가 왜 포틀랜드 주립대학 교수직을 사임했는가에 대한 내용이 담겨 있다. 포틀랜드..
[OAuth 2.0] Refresh Token Refresh Token Access Token은 수명이 있다. 그 수명이 끝나면 더이상 Resource Server에서 리소스를 가져올 수 없다. 리소스에 다시 접근하기 위해 Access Token을 발급 받아야 하는데, 번거로운 일이 될 수 있다. 이 문제를 좀 더 손쉽게 해결하기 위해 방법으로 Refresh Token이 있다. Refresh Token은 Authorization Server에 의해 발급되어 Client에게 전해지는데, 현재의 Access Token이 유효하지 않거나 수명이 끝났을 때 새로운 Access Token 개념으로 발급된다. 또는 필요에 의해 기존 Access Token이 가진 리소스 접근 범위를 넘은 리소스에 접근하고자 할 때 추가로 발급되는 Access Token 개념으로..
[Java] main 메소드 Java 실행 프로그램은 반드시 class 블록과 main() 메소드 블록으로 구성되어야 한다. 메소드 블록은 단독으로 작성될 수 없고 항상 클래스 블록 내부에 작성되어야 한다. 다음은 "Hello World" 문자열을 출력하는 코드이다. public class Hello{ public static void main(String[] args){ System.out.println("Hello World"); } } class 이름은 개발자가 마음대로 정할 수 있다. 하지만 main() 메소드는 java에서 JVM(Java Virtual Machine)을 구동시키면 가장 먼저 찾아서 실행시키는 entry point역할을 하는 메소드이기 때문에 이름을 마음대로 바꾸면 안 된다. main() 메소드의 구문은 언..
[OAuth 2.0] OAuth2.0 개요 OAuth 2.0 "Open Authorization(인가/권한 부여)"을 뜻하며, 웹 사이트나 애플리케이션이 사용자 대신 다른 웹 앱에서 호스팅 하는 리소스에 접근할 수 있도록 설계된 표준이다. OAuth 2.0은 사용자의 자격증명 없이 허가된 액세스를 제공하거나, 특정 리소스에 대한 접근을 제한할 수 있다. OAuth 2.0의 기본 개념 OAuth 2.0은 인증 프로토콜(authentication protocol)이 아니라 권한 부여 프로토콜(authorization protocol)이다. 따라서 원격 API 또는 유저 정보와 같은 리소스들에 액세스 권한을 부여하는 수단으로 설계되었다. OAuth 2.0는 액세스 토큰(Access Token)을 사용하는데, 이 액세스 토큰은 사용자 대신 리소스에 액세..
[Java] 기본 데이터 타입(Primitive Data Types) 자바의 데이터 타입은 기계/운영체제에 상관없이 항상 일정하다. 문제 풀다가 헷갈리는 부분이 있어 두고두고 눈에 익히려고 작성한다. 자칫 대수롭지 않게 넘기기 쉬운 부분인데, 기초인 만큼 확실히 알아두면 분명 도움이 되리라 생각한다. byte(-128 ~ 127) 저장공간: 8-bit 최대값: 127 최소값: -128 public class Main { public static void main(String args[]) { System.out.println(Byte.MAX_VALUE); System.out.println(Byte.MIN_VALUE); // 127 // -128 } } short(-32,768 ~ 32,767) 저장공간: 16-bit 최대값: 32,767 최소값: -32,768 public..
[Node.js] express.Router express.Router 클래스를 이용해 모듈러(modular)와 마운트 가능한 핸들러(handler)를 생성할 수 있다. 이를 통해 공통된, 반복된 작업량을 줄일 수 있다. 아래 코드는 애플리케이션의 엔트리 포인트(entry-point)인 main.js 클래스에 Welcome 메시지를 로드하는 indexRouter라는 미들웨어 모듈을 마운트하는 내용이다. /routes/index.js var express = require('express'); var router = express.Router(); var template = require('../lib/template.js'); router.get('/', (request, response) => { var title = 'Welcome'; var ..

반응형