문자열 내 마음대로 정렬하기 / K번째 수 / 두 개 뽑아서 더하기 / [1차]비밀지도 / 콜라 문제
·
프로그래머스/1단계
1️⃣ 문자열 내 마음대로 정렬하기 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한사항 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 입출력 예 strings ..
최소직사각형 / 시저 암호 / 숫자 문자열과 영단어 / 가장 가까운 같은 글자 / 푸드 파이트 대회
·
프로그래머스/1단계
1️⃣ 최소직사각형 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할..
[Spring Security] 기본 개념
·
Project 댕린이집
1️⃣ Spring Security 란? Web 기반 Application에 보안적인 제한을 추가하기 위해 사용하는 Security Framework 중에 하나입니다. Spring Security의 주된 목표는 rest api endpoint, mvc url, 정적 리소스와 같은 리소스들에 접근하려는 요청의 인증을 책임지는 것 입니다. Spring Security는 Spring 생태계와 호환성이 높고 커스텀이 매우 쉽습니다. ⇒ 스프링 생태계에서 인증과 인가라는 개념을 최대한 쉽고 유연하게 구현할 수 있도록 만들어진 프레임워크. Spring을 사용한다면 사실상 최선의 Security Framework 입니다 ! 인증(Authentication) 사용자가 누구인지 확인하는 절차. ( ex. 로그인 ) 단순..
3진법 뒤집기 / 예산 / 이상한 문자 만들기 / 크기가 작은 부분문자열 / 삼총사
·
프로그래머스/1단계
1️⃣ 3진법 뒤집기 문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예 n result 45 7 125 229 ❌틀린코드 class Solution { public int solution(int n) { String str = ""; // 10진법 -> 3진법 while (n > 0) { str += n % 3; // n을 3으로 나눈 나머지를 문자열 str에 추가 n /= 3; // n을 3으로 나눈 몫으로 갱신 } str = new StringBuilder(str).reverse().toString..
쿠키 vs 세션 vs 토큰 vs JWT
·
Project 댕린이집
프로젝트에 Spring Security를 적용하기에 앞서 jwt와 쿠키, 세션, 토큰 등에 대해서 한번 더 정리해보고자 합니다! 먼저 쿠키와 세션이 나타나게 된 이유를 살펴봐야 하는데 바로, HTTP 프로토콜의 특징 때문입니다. HTTP 프로토콜은 두 가지의 특징을 갖습니다. 비연결지향 ( Connectionless ) 클라이언트가 요청을 서버에 보내고, 서버는 클라이언트에게 적절한 응답을 준 뒤, 연결(Connection)을 끊는 특성이 있습니다. 상태없음 ( Stateless ) 연결을 끊는 순간 클랑이언트와 서버의 통신이 끝나며 상태 정보를 유지하지 않는 특성이 있습니다. 비연결지향이라는 특성 덕분에 커넥션을 유지하지 않아 서버 리소스 낭비가 줄어든다는 장점이 있지만, 통신할 때 마다 새로운 커넥션..
문자열 다루기 기본 / 행렬의 덧셈 / 직사각형 별찍기 / 최대공약수와 최소공배수 / 같은 숫자는 싫어
·
프로그래머스/1단계
1️⃣ 문자열 다루기 기본 문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한사항 s는 길이 1 이상, 길이 8 이하인 문자열입니다. s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다. 입출력 예 s return "a234" false "1234" true 💻 나의 풀이 class Solution { public boolean solution(String s) { if(s.length() == 4 || s.length() == 6) { // 길이가 4 혹은 6 인지 for(int i=0; i '9') { return..
가운데 글자 가져오기 / 수박수박수박수박수박수? / 약수의 개수와 덧셈 / 문자열 내림차순으로 배치하기 / 부족한 금액 계산하기
·
프로그래머스/1단계
1️⃣ 가운데 글자 가져오기 문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s return "abcde" "c" "qwer" "we" 💻 나의 풀이 class Solution { public String solution(String s) { String answer = ""; int length = s.length(); // 길이 if(s.length() % 2 == 0) { // 길이가 짝수 answer += s.charAt(length/2 - 1); answer += s.charAt(length/2); } else { // 길이가 홀수 ..
[React] 공부한 것을 적용해보기 위한 간단한 Todo app
·
Project 댕린이집
리액트 기초 내용을 적용해보며 더욱 익숙해지고자 기본 중의 기본 To do app 만들기를 구현해봤습니다. 먼저 컴포넌트 구조는 아래와 같습니다. [ App.js ] 메인 컴포넌트인 Todo.js 를 import 해줍니다. import './App.css'; import Todo from './components/Todo'; // 메인 컴포넌트인 Todo.js function App() { return ( ); } export default App; [ Todo.js ] import 부분 입니다. 컴포넌트 구조를 보면 Todo.js 안에 TodoForm.js와 TodoList.js가 있어야하므로 import 해줍니다. css도 import 해줍니다. 그리고 고유 id값을 부여하기 위해 useRef를 im..
[React] React의 동적 라우팅, useParams
·
Project 댕린이집
1️⃣ 동적 라우팅 이란? 동적 라우팅(Dynamic Routing)은 웹 어플리케이션에서 클라이언트의 요청에 따라 동적으로 경로를 처리하는 라우팅 방식을 말합니다. 이는 사용자의 입력, 상태 변화, 또는 다양한 조건에 따라 서버가 어떤 페이지나 리소스를 제공할지를 결정하는 것을 의미합니다. 동적 라우팅은 정적 라우팅(Static Routing)과 대조적으로, 라우팅 규칙이 사전에 하드코딩되어 있지 않고 실행 시에 결정됩니다. 2️⃣ 동적 라우팅의 필요성 먼저, 정적 라우팅은 라우터 컴포넌트에서 사용할 경로와 해당 경로로 접속 시 보여줄 컴포넌트를 미리 정의합니다. 여러가지 상세페이지와 내용이 있게 된다면 이렇게 경로를 미리 설정하는 방식은 비효율적 입니다. 저의 프로젝트로 예를 들어보자면 강아지의 보육..
[React] React-Router-Dom
·
Project 댕린이집
1️⃣ Routing 이란? 라우팅이란 네트워크에서 경로를 선택하는 프로세스를 의미합니다. 요청 들어온 여러가지 주소에 알맞는 곳으로 이동시켜주는 것이라고 말할 수 있습니다. 2️⃣ React-Router를 사용하는 이유 react-router를 사용하지 않고 그냥 태그를 사용하면 페이지 전체가 새로 로딩 됩니다. 새로 로딩된다는 것은 화면 깜빡임이 필수적으로 발생하게 되고 이는 사용자 경험을 떨어뜨리게 됩니다. 즉, react-router는 SPA 사용자 경험 향상을 목적으로 합니다. ✔ SPA 사용자 경험 향상이란? 싱글 페이지 어플리케이션(SPA)은 웹 어플리케이션의 구조를 나타내는 용어로, 하나의 HTML 페이지로 구성되며 동적으로 페이지의 내용을 업데이트하는 방식의 어플리케이션입니다. 대표적인 ..
xoo | 수진