728x90
OAuth 프로토콜이란 ? OAuth = Open Authorization 인증을 위한 개방형 표준 프로토콜 클라이언트를 대신하여 리소스 서버에서 제공하는 자원에 대한 접근 궈한을 위임받는 방식 클라이언트가 사용자 인증 정보를 공유하지 않고도 자원에 접근할 수 있도록 하는 인증 방법 → 사용자 입장에서는 OAuth를 사용하면 민감 정보를 굳이 입력하지 않고도 신뢰할 수 있는 서버를 토대로 로그인 처리가 되고, 서버 입장에서도 민감 정보를 굳이 직접 관리하지 않아도 되는 이점이 있다. OAuth 1.0과 2.0 차이점 OAuth 1.0과 OAuth 2.0 모두 API 보안을 위한 프로토콜이다. 1) 토큰 갱신 OAuth 1.0 에서는 토큰 갱신이 어려웠다. (Access Token 유효기간 X) OAuth..
⬛ 프로그래머스 | LV.3 110 옮기기 - 문자열 구현 & Stack 활용 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/77886 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 기존 String에 존재하는 “110”을 임의의 위치에 삽입해서 가장 사전 순 앞순으로 만들 수 있는 String을 만들어 반환하는 문제이다. 예시로 하나씩 해보면 0이 더 앞으로 갈수록 가장 사전 앞순인 것을 알 수 있다. 즉 마지막 0 뒤에 110을 삽입해야 한다. 1차 시도 “1..
⬛ 프로그래머스(위클리) | LV.2 교점에 별 만들기 - 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/87377 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 주어진 직선 정보와 두 직선의 교점 구하는 공식을 활용해서 모든 두 직선 간의 교점을 차례로 구하되, 그 중 (정수로 표현되는) 교점에 한해서 담고, 끝없이 펼쳐진 좌표평면 중 교점을 표현할 정도의 크기로만 잘라서 출력하라는 문제였다. [주의] long 타입으로 선언한 이유는 A, B, C 각각 (..
⬛ 프로그래머스 | LV.2 혼자 놀기의 달인 - DFS 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 솔직히 문제만 읽었을 때는 도대체 뭔 말하는 건지 도통 이해가 안됐다 .. 1) 차례대로 (방문 X) 상자 선택해서 상자에 담긴 카드 번호가 다음 상자 번호가 되는 방식으로 DFS를 계속 깊이 탐색 2) 결과적으로 계속 타고 타고 현재 카드에 대한 다음 상자를 선택했을 때 이미 방문한 상자라면 탐색을 종..
⬛ 프로그래머스 | LV.1 공원 산책 - 단순 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 명령어에 따른 현재 좌표를 갱신하는 문제인데, 명령어를 무시하는 조건은 1) 경계값 벗어날 경우 2) 가는 도중 ‘X’ 장애물 만날 경우이다. 일단 nx와 ny를 명령어에 따라 이동 시키고, 무시해야할 조건에 걸리는 명령어라면 갱신하지 않고, 그렇지 않다면 계속해서 st[] 에 이동한 좌표를 갱신하며 풀면 ..
⬛ 프로그래머스 | LV.3 인사고과 - 단순 구현 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/152995 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 처음에 문제를 잘못 이해했다. (처음에는 두 점수 모두 내림차순으로 정렬한 뒤 가장 마지막 사람이 무조건 탈락이라고 생각함) 이 경우, [1,4] 가 탈락되어야 하는데, 사실은 1,4 총점은 5이고 이사람의 경우 근무 점수 기준은 가장 낮으나, 동료점수 기준은 가장 높다. 따라서 탈락되면 안됨) 일단, 앞선 ..
⬛ 프로그래머스(카카오) | LV.2 양궁대회 - DFS, 완탐 문풀 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 문제 예시를 보면 n발을 어떤 조합으로 배치해서 어피치를 최대 점수 차로 이기는지, 그리고 그 조합이 여러 개라면 더 낮은 점수를 많이 맞힌 케이스로 리턴하라고 되어 있다. 처음에는 이거를 어떻게 컨트롤해서 n발을 배치하는 게 나은가 생각하다가 완전 탐색으로 결국 모든 케이스를 구해야 하는 문제구나..
⬛ 프로그래머스 | LV.2 우박수열 정적분 - 단순 구현 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/134239 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 문제를 다 이해하고 나면 그렇게 어려운 문제가 아닌데, 문제에서 주어진 ranges에 대한 내용이 이해가 안돼서 애를 먹었다. [풀이] 1) a는 0에서 a만큼 떨어진 지점, b는 맨뒤에서 b만큼 떨어진 지점으로 보아야 한다. 2) 또한, 사다리꼴 공식을 활용해서, 해당 범위에 대한 누적 합을 구해야 한다. 3) ..
⬛ 프로그래머스 | LV.1 달리기 경주 - HashMap 단순 구현 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/178871# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 기존 players의 등수가 주어지면 calling가 불리는 이름을 앞등수와 swap시켜 추월시키는 문제이다. 그런데, 처음에 풀면서 시간 초과가 났다. players는 최대 5*10^4 이고, callings가 최대 10^6 이기 때문에 이중for문 돌면 10^10이 되어 시간 초과가 난다. 즉, 이..
⬛ 프로그래머스(카카오 기출) | LV.2 주차 요금 계산 - 단순 구현 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 1) HashMap 형태를 활용해서 입/출차 정보를 기록하려고 했다. → key로 식별할 차 번호는 String으로 담고, → value에는 차량 별 주차시간 (분) 이 담기도록 했다. 2) 데이터 기록 후, map의 value 값이 0보다 작거나 같은 케이스 처리 주의 사항에 보면, 입차 정보만 있고..
⬛ 프로그래머스(카카오 기출) | LV.3 합승 택시 요금 - 플로이드 or 다익스트라 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 보자마자 다익스트라나 플로이드를 떠올렸고, 실제로 두 방식으로 다 풀 수 있는 문제였다. 첫 시도 때는 시작점이 고정되어 있어서 다익스트라를 시도해볼까 하다가, 경유지가 다양하게 존재할 수 있기 때문에 편하게 플로이드로 all-to-all 최단 거리를 먼저 구해놓고, 편하게 모든 경유지를 거쳐서 갱..
⬛ 프로그래머스 (Dev-Matching 기출) | LV.2 행렬 테두리 회전하기 - 구현 https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 시계방향은 (우→하→좌→상) 순으로 돌아야 하고, 매번 prev로 직전값을 현재 map에 담으면서 움직인다. 매번 쿼리로 들어오는 (x1, y1, x2, y2) 의 테두리만 돌아야 한다. (1) map[][] 2차원에 차례로 값을 세팅해준다. (2) rotate() 함수에 query를 보내..
⬛ 프로그래머스 (카카오 기출) | LV.2 문자열 압축 - 문자열 활용 구현 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 처음에는 절반까지만 자르면 되지 않을까 생각했는데, 마지막 케이스의 경우 17글자인데도 결국 더 짧게 압축하는 방법이 없어서 17을 반환한 것을 보고 split 단위를 전체 글자 수 까지 하나씩 늘려가며 푸는 것으로 마음을 굳혔다. s 글자수가 최대 10^3이라서 이중for문 돌아도 10^6이고,..
⬛ 프로그래머스 | LV.1 바탕화면 정리 - 단순 구현 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚문제 접근 방식 레벨 1 문제여서 복잡하게 생각하지 않고, 최대한 문제 내용대로 이해하는 데 초점을 맞춰서 풀었다. S좌표에서 E좌표로 드래그해서 모든 파일 선택하는 게 목표인 문제이다. 좌표 상은 격자표 위의 (x,y) 좌표여서,시작점은 상관없는데, E 끝점에는 +1씩 처리해줘야 문제대로 풀린다. S→E 로 드래그 : 가장 왼쪽&..
24.02.16 (금) 질문 내용 정리 트랜잭션 개념과 특징에 대해서 설명하시오. 트랜잭션 병행 처리 했을 때 발생하는 문제와 방지하기 위한 방법에 대해 설명하시오. 갱신손실 → 락킹 제어기법을 사용 Non-Repeatable Read 는 발생하지 않지만, Phantom Read는 발생하는 경우는? 그리고 각각 설명하세요. Non-Repeatable Read : 트랜잭션 내에서 같은 쿼리를 두번 실행 했는데 내용이 다른거 Phantom Read : 같은 쿼리를 두 번 실행했는데 다른 트랜잭션의 삽입 삭제로 결과가 다르게 나타나는 현상 트랜잭션 동작과정(hdd, buffer) : 물리적인 메모리 상의 동작 과정을 설명하시오. 데드락에 대해 설명, 데드락을 해결하기 위한 방법 3가지(낙관적 동시성 제어)에 ..
DB 트랙잭션과 트랙잭션 특성 4가지, DB 트랜잭션 격리수준 DB 트랜잭션 | Transaction 1) 트랜잭션 개념 (1) 트랜잭션 DBMS에서 데이터 다루는 논리적 작업 단위 여러 쿼리를 논리적으로 하나의 작업으로 묶어주는 것 DB에서 데이터 다루다가 장애 일어난 경우 → 데이터 복구 작업의 단위 DB에서 여러 트랜잭션이 동시에 같은 데이터 다룰 경우 → 동시 접근 작업들 분리하는 단위 (2) 트랜잭션 제어어 | TCL (Transaction Control Language) start transation : 트랜잭션 시작 SET TRANSACTION NAME commit : 트랜잭션 종료 COMMIT rollback : 트랜잭션 무효화 ROLLBACK {TO } //트랜잭션 전체 or 까지 무효화..
⬛ 백준 11438번. LCA 2 - 최소공통조상 문풀 https://www.acmicpc.net/problem/11438 11438번: LCA 2 첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 줄에는 트리 상에서 연결된 두 정점이 주어진다. 그 다음 줄에는 가장 가까운 공통 조상을 알고싶은 쌍의 개수 M이 주어지고, 다음 M개 줄에는 정 www.acmicpc.net 문제 N(2 ≤ N ≤ 100,000)개의 정점으로 이루어진 트리가 주어진다. 트리의 각 정점은 1번부터 N번까지 번호가 매겨져 있으며, 루트는 1번이다. 두 노드의 쌍 M(1 ≤ M ≤ 100,000)개가 주어졌을 때, 두 노드의 가장 가까운 공통 조상이 몇 번인지 출력한다. 입력 첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1..
⬛ 백준 11437번. LCA 1 - 최소 공통 조상 문풀 https://www.acmicpc.net/problem/11437 11437번: LCA 첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 줄에는 트리 상에서 연결된 두 정점이 주어진다. 그 다음 줄에는 가장 가까운 공통 조상을 알고싶은 쌍의 개수 M이 주어지고, 다음 M개 줄에는 정 www.acmicpc.net 문제 N(2 ≤ N ≤ 50,000)개의 정점으로 이루어진 트리가 주어진다. 트리의 각 정점은 1번부터 N번까지 번호가 매겨져 있으며, 루트는 1번이다. 두 노드의 쌍 M(1 ≤ M ≤ 10,000)개가 주어졌을 때, 두 노드의 가장 가까운 공통 조상이 몇 번인지 출력한다. 입력 첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 ..
LCA의 기본적인 접근법에 대해 먼저 소개해 보고, 빠른 접근 방법을 정리해보겠다. 최소 공통 조상 (Lowest Common Ancestor) LCA | 최소 공통 조상 트리 그래프에서 임의의 두 노드가 거슬러 올라가다가 처음 공통으로 만나는 ‘최소 공통 부모 노드’를 탐색하는 알고리즘이다. [1] 일반적인 방법론 (1칸 씩 점프하여 구하는 방식) → 이 방식은 시간 제한이 타이트 하지 않을 때 활용하면 된다. 1) 데이터 초기화하기 a) tree를 인접 리스트로 구현하여 입력값 세팅해준다. b) DFS나 BFS로 각 노드의 (부모노드, 현재 깊이)를 세팅해준다. 2) 질의 처리하기 (1) 더 깊이 큰 노드를 a에 swap 시킴 (2) 깊이 더 큰 a 의 깊이가 b의 깊이와 같아질 때까지 parent로..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.