본문 바로가기

분류 전체보기

(31)
[Python] 백준 #14501 퇴사 - Silver 3 문제 링크https://www.acmicpc.net/problem/14501 문제상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다.오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다.백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다.각각의 상담은 상담을 완료하는데 걸리는 기간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다.N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일2일3일4일5일6일7일T_i3511242P_i102010201540200 1일에 잡혀있는 상담은 총 3일이 걸리며, 상담했을 때 받을 수 있는 금액은 10이다. 5일에 잡혀있는 상담은 총 2일이 걸..
[Python] 백준 #14252 공약수열 - Platinum 5 문제 링크https://www.acmicpc.net/problem/14252 문제 서로 다른 양의 정수로 이루어진 크기가 N인 집합 A가 주어진다. 영선이는 집합에 새로운 양의 정수를 추가하려고 한다. 이때, 집합에 있는 수를 정렬한 결과에서 인접한 두 수의 공약수가 1을 넘으면 안 된다. 그러기 위해서 수를 최소 몇 개 추가해야하는지 구하는 프로그램을 작성하시오. 입력첫째 줄에 N이 주어진다. (1 ≤ N ≤ 50)둘째 줄에는 집합에 포함되어 있는 수가 주어진다. 주어지는 수는 100,000보다 작거나 같은 자연수이다.출력첫째 줄에 수를 최소 몇 개 추가해야하는지 출력한다.힌트 예제 1의 경우에 {43, 2195, 2199}를 추가하면 된다. 해결 방법인프런 강의(2주만에 통과하는 알고리즘 코딩테스트)..
[Python] 백준 #2247 실질적 약수 - Gold 5 문제 링크https://www.acmicpc.net/problem/2247문제두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 모든 자연수 N은 1과 자기 자신(N)을 약수로 갖게 된다.실질적 약수(actual divisor)라는 것이 있다. 자연수 N의 약수들 중에서 1과 자기 자신(N)을 제외한 약수를 실질적 약수라고 한다. 따라서 6의 실질적 약수는 2, 3이며, 13의 실질적 약수는 없다.SOD(Sum Of Divisor)라는 함수를 정의하자. SOD(n)은 정수 n의 모든 실질적 약수의 합을 가리킨다. 따라서 SOD(6) = 5이며, SOD(13) = 0이다. 한편, CSOD(Cumulative SOD)라는 함수도 정의해 볼 수 있다. CSOD(n)은 SO..
빌더 어노테이션(@Builder) @Builder 란객체 생성 방식을 유연하게 하기 위한 어노테이션객체 생성 시 빌더 패턴 적용 가능주요 기능유연한 객체 생성필요한 필드만 선택적으로 설정할 수 있음불변성 유지객체를 생성하기 전에 먼저 필요한 필드를 모두 설정이후, 객체를 생성하므로 불변성 유지  생성자에 사용 VS 클래스 자체에 사용생성자에 @Builder를 사용하는 방식선택적 빌더 패턴 적용특정 생성자에만 빌더 패턴을 적용할 수 있음필요한 경우에만 빌더 패턴 사용 가능기본값이 필요한 필드는 매개변수를 통해 설정해야함빌더 패턴을 사용하기 위해 추가 생성자를 생성해야함여러 생성자가 있거나 특정 생성자만 빌더 패턴으로 생성하고 싶을 때import lombok.Builder;public class Car { private String m..
SSAFY 공통 프로젝트 회고록 - KidWe 작성 의도제대로된 프로젝트에 참여한 건 이번이 처음이다. 그 전 프로젝트들은 대체로 사이드로 진행하거나, 기간이 짧았었다.그래서 이번 프로젝트에서 배우고 느낀점, 개선해야할 점 등에 대해 생각을 많이 하였고, 이를 회고록으로 남기기로 결심하였다.프로젝트 소개키위(KidWe)는 유치원 관리 서비스이다. 최대한 유치원 선생님들의 일을 줄여드리기 위해 간편하고 편리함을 강조하려 애쓰려 하였다. 어떤 기능이 있는지는 메인 화면으로 대체하겠다.6명(FrontEnd 3명, BackEnd 3명)이 7주간 프로젝트에만 전념하였다.잘한 점다양한 기술 도입이번 프로젝트에서 특히 FrontEnd 팀원들 모두 새로운 기술, 툴을 도입하는 것에 긍정적이었다. TypeScript 언어, 컴포넌트를 쉽게 관리할 수 있는 Story..
FrontEnd 개발 환경 개념 개요최근 프로젝트를 진행하며 React와 Typescript를 사용하였다. 나의 개발 환경에 대해 프레임워크와 라이브러리, 런서버 환경 등에 대해 개념이 모호하여 이번 기회에 정리하기로 마음먹었다.사실 Node.js와 Next.js가 비슷한 개념인줄 알아서 글을 쓰게 됨 프로그래밍 언어: 컴퓨터 프로그램을 작성하기 위해 사용하는 언어JavaScript- 웹 개발에서 널리 사용되는 스크립트 언어- 주로 클라이언트 사이드에서 동작함TypeScript- JavaScript의 슈퍼셋 언어- 정적 타임 시스템을 추가하여 JavaScript 코드의 오류를 방지함Python- 읽고 쓰기 쉬운 문법을 가진 프로그래밍 언어.- 웹 개발, 데이터 분석, 인공지능 등 다양한 분야에서 사용됨 런타임 환경: 특정 프로그래밍 언..
상태 관리 라이브러리 상태 관리 라이브러리: 애플리케이션의 상태(state)를 효과적으로 관리하고, 상태 변화에 따른 UI 업데이트를 쉽게 할 수 있도록 도와주는 도구 ex) Redux , Mobx, Context API, Recoil, Zustand필요성1. 복잡한 상태 관리- User 상호작용이 많아, 여러 컴포넌트들이 서로 상태를 공유해야 하는 경우가 많음- useState, useReducer로 상태 관리를 하기엔 복잡해지기에 라이브러리를 사용함2. 일관된 상태 관리- 앱 상태를 일관되게 유지 가능- 상태 변화가 예측 & 추적 가능 > 디버깅 용이3. 전역 상태 관리- 앱의 여러 컴포넌트가 동일한 상태를 공유해야할 때 유용- ex) 사용자 인증 정보, 테마 설정 등4. 성능 최적화- 필요한 부분만 리렌더링5. 코드 구..
SSO(Single Sign-On) SSO: 한 번의 인증 과정(로그인)으로 여러 컴퓨터 상의 자원을 이용하게 해주는 인증 기능이다.장점- 중앙집중 관리 > 개별 관리의 위험성 해소- User의 편의성 증가단점- SSO 서버 침해 > 모든 서버의 보안 침해 가능- 각각의 사이트의 보안 수준이 다르면, 보안에 문제가 생김- SSO 서버가 단일 장애 지점(SPOF)( SPOF : 시스템 구성 요소 중에서, 동작하지 않으면 전체 시스템이 중단되는 요소) 구성 요소1. 사용자 통합 로그인2. 인증 서버3. 통합 에이전트 : 각 정보 시스템에 대한 정보 관리4. LDAP(Lightweight Directory Access Protocol) : 인사된 사용자만 접근하도록 하는 네트워크 디렉토리 서비스 기술 요소- 인증 : PKI(Public Key ..