분류 전체보기 152

99클럽 코테 스터디 6일차 TIL : Hashing

요즘 몸이 별로 안 좋아서 5일차 TIL은 빼먹었다고...문제APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정의한다. 해시 함수는 무궁무진한 응용 분야를 갖는데, 대표적으로 자료의 저장과 탐색에 쓰인다.이 문제에서는 여러분이 앞으로 유용하게 쓸 수 있는 해시 함수를 하나 가르쳐주고자 한다. 먼저, 편의상 입력으로 들어오는 문자열에는 영문 소문자(a, b, ..., z)로만 구성되어있다고 가정하자. 영어에는 총 26개의 알파벳이 존재하므로 a에는 1, b에는 2, c에는 3, ..., z에는 26으로 고유한 번호를 부여할 수 있다. 결과적으로 우리는 하나의 문자열을 수..

코딩테스트 00:19:57

99클럽 코테 스터디 4일차 TIL : reverse()

문제고려대학교에 입학한 새내기 호돌이는 안암역을 지나다가 한 붕어빵 장수를 만났어요.“안녕, 안녕, 안녕하십니까, 아저씨! 붕어빵 두 개 주세요.”“안녕을 세 번 외쳤으니 붕어빵 세 개!”붕어빵 두 개의 값을 내고 세 개를 받은 호돌이는 기분이 좋았어요. 호돌이가 붕어빵 하나를 꺼내어 한 입 물었는데…. 너무 뜨거워서 그만 붕어빵을 떨어뜨리고 말았어요ㅠㅠ붕어빵은 자유 낙하운동을 하면서 땅에 떨어졌는데 신기하게도 좌우가 뒤집힌 모양으로 착지했답니다. 호돌이가 붕어빵을 한 입 물기 전의 모양이 입력으로 주어지면, 땅에 떨어졌을 때에는 어떤 모양일지 출력하세요.입력첫째 줄에는 두 개의 정수 N과 M(0≤N,M≤10)이 주어집니다. 둘째 줄부터 N개의 줄에 걸쳐 붕어빵의 모양이 주어집니다. 각 행에는 공백을 나..

코딩테스트 2025.01.16

99클럽 코테 스터디 3일차 TIL : StringBuilder

문제문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다.QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\\$%*+-./: 이다.입력첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다.출력각 테스트 케이스에 대해 P를 출력한다.예제 입력 1 복사23 ABC5 ..

코딩테스트 2025.01.16

99클럽 코테 스터디 2일차 TIL : Scanner와 BufferedReader

백준 : 그대로 출력하기 2문제입력 받은 대로 출력하는 프로그램을 작성하시오.입력입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 있을 수도 있다.출력입력받은 그대로 출력한다.예제 입력 1 복사 HelloBaekjoon Online Judge 예제 출력 1 복사 HelloBaekjoon Online Judge   내 풀이JAVAEOF일 경우 null을 반환한다.lineCount가 100을 넘거나 null이면(EOF 도달) 반복이 종료된다.import java.io.BufferedReader;import ja..

코딩테스트 2025.01.15

99클럽 코테 스터디 1일차 TIL + String 접근 방식

문제 설명대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.제한사항문자열 s의 길이 : 50 이하의 자연수문자열 s는 알파벳으로만 이루어져 있습니다.입출력 예s answer"pPoooyY"true"Pyy"false입출력 예 설명입출력 예 #1'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합니다.입출력 예 #2'p'..

코딩테스트 2025.01.13

WebSocket으로 인터랙티브 웹 어플리케이션 만들기

ai agent 통화 서비스의 백엔드 로직을 고민하던 중에 websocket에 대해 이해해보고 싶어서 스프링 공식 가이드를 공부했다. 깃허브 코드 : https://github.com/kchabin/spring-gs GitHub - kchabin/spring-gs: 스프링 공식 가이드스프링 공식 가이드. Contribute to kchabin/spring-gs development by creating an account on GitHub.github.com  WebSocket?When the connection is established and alive the communication takes place using the same connection channel until it is termina..

Spring 2025.01.07

LCEL로 간단한 LLM Application 구축하기

https://python.langchain.com/docs/tutorials/llm_chain/  RAG로 졸업프로젝트를 진행했었는데, 깊이 없이 부랴부랴 개발했던 것 같아서 제대로 다시 공식문서부터 읽어보면서 공부하려고 한다.LangChain외에도 LlamaIndex, Spring AI가 있는데 일단 대중적이고 한번 써본 LangChain부터 실습했다.모든 실습은 VSCode, Jupyter Notebook을 통해 이뤄진다.만들 app : 영어에서 다른 언어로 텍스트를 번역하는 애플리케이션언어 모델 사용PromptTemplates 및 OutputParsers 사용LangChain Expression Language(LCEL)를 사용하여 컴포넌트 연결하기LangSmith를 사용한 애플리케이션 디버깅 및..

인공지능 2024.11.12

SpringBatch(2) : 코드 설명 및 아키텍처 알아보기

스프링 배치 3.0 이상 버전을 이용하므로 @EnableBatchProcessing이 필요하지 않다기본 배치 어플리케이션지난번에 만든 스프링배치 프로젝트 활용lombok 설정과정Tasklet 구현체 생성@Configuration 을 통해서 생성할 Batch Bean을 스프링에 등록한다.Job, Step을 생성하고 빈에 등록실행 결과 확인Tasklet 구현체 생성Tasklet → Step 내에서 구성되고 실행되는 도메인 객체, 단일 task를 수행하기 위해 사용된다.import lombok.extern.slf4j.Slf4j;import org.springframework.batch.core.StepContribution;import org.springframework.batch.core.scope.cont..

Spring/Spring Batch 2024.10.30

PAM 알아보기

PAM(Pluggable Authentication Modules)리눅스 시스템에서 사용자의 인증을 담당하는 모듈사용자의 서비스 접근 통합 관리네가지 모듈(auth, account, password, session)로 구성됨각 모듈을 활용해 root 접속 제한, 비밀번호 강도 설정, 비밀번호 만료 일자 등을 설정함 → 사용자 계정 보안 강화모듈 설명authentication비밀번호, 공개키를 이용하여 사용자의 신원을 확인하는 모듈account계정 만료, 시간, 특정 서비스 접근 권한 등 인증 조건을 검사하는 모듈password비밀번호 갱신, 복잡도 등을 설정하는 모듈session사용자 세션의 시작부터 끝까지 가능한 작업을 정의하는 모듈PAM을 통한 접근 제어로그인 시도PAM이 /etc/pam.d 에 있는..

시스템 해킹 2024.10.22