분류 전체보기 43

[DFS,BFS 기초] 팩토리얼

문제자연수 N이 입력되면 N!를 구하는 프로그램을 작성하세요.예를 들어 5! = 5*4*3*2*1=120입니다. 입력설명첫 번째 줄에 자연수 N(1 출력설명첫 번째 줄에 N 팩토리얼 값을 출력합니다. 입력예제 15 출력예제 1120   if(n==1) 이면 1 리턴하고그게 아니면 n*DFS(n-1) 라는 재귀함수를 리턴한다 DFS(5)는 5*DFS(4)를 리턴받음 DFS(4)는 4*DFS(3)를 리턴받음DFS(3)는 3*DFS(2)를 리턴받음DFS(2)는 2*DFS(1)를 리턴받음DFS(1)은 1을 리턴받음 그러면 스택이니까 DFS(1)이 먼저 POP되고 그 다음은 맨 상단에 있는 DFS(2) -> DFS(3) -> DFS(4) -> DFS(5)이렇게 차례대로 리턴 받는다 그래서 최종적으로 120이 나온다

알고리즘 2025.01.18

[DFS,BFS 기초] 재귀함수를 이용한 이진수 출력

문제10진수 N이 입력되면 2진수로 변환하여 출력하는 프로그램을 작성하세요. 단 재귀함수를 이용해서 출력해야 합니다. 입력설명첫 번째 줄에 10진수 N(1 출력설명첫 번째 줄에 이진수를 출력하세요. 입력예제 111 출력예제 11011   DFS(11)을 넘겨주므로 11을 2진수로 변환해서 출력해줘야한다여기서 n이 0이 되면 재귀함수가 멈춰야 한다 그니까 들어오는 n이 11 이였다가 5 였다가 2 였다가 1이였다가 0이 되어야 한다그리고 그 나머지를 출력하니까 1011 거꾸로 출력해줘야한다  if (n==0) return; 종료 조건 달아준다else에서는 DFS(n/2) 이렇게 2로 나눈 몫으로 바꿔줘야한다출력은 2로 나눈 나머지를 출력해야하므로 n%2로 출력해준다 이제 출력코드를 dfs 호출 앞에다가 넣..

알고리즘 2025.01.18

[DFS,BFS 기초] 재귀함수

문제자연수 N이 입력되면 재귀함수를 이용하여 1부터 N까지를 출력하는 프로그램을 작성하세요. 입력설명첫 번째 줄은 정수 N(3 출력설명첫째 줄에 출력한다. 입력예제 13 출력예제 11 2 3  재귀함수는 자기가 자기 자신을 호출하는 함수자기가 자기 자신을 호출하는것이므로 DFS(n-1) 이렇게 해주면 자기 자신을 호출해주는 것만약에 3이 넘어가면 DFS(2)를 호출하고 또 다음에는 DFS(1)을 호출하고 계속 호출하게 된다 -> 무한반복재귀함수는 반복문의 형태 무한반복이므로 종료조건을 줘야됨 if(n==0) return; -> DFS(0)은 바로 종료될 것이다void형에서 return;하면 함수의 종료의 의미를 갖고있음 System.out.print(n+" "); 이 코드를 DFS(n-1) 위에다가 놓으..

알고리즘 2025.01.18

windows 환경에서 flutter 세팅...하려다가 취소

https://docs.flutter.dev/get-started/install/windows/mobile Start building Flutter Android apps on WindowsConfigure your system to develop Flutter mobile apps on Windows.docs.flutter.dev  여기서 zip 파일 C드라이브에 압축해제 ㄱㄱ그리고 flutter/bin 파일 환경변수 추가함다 했으면 cmd에서 flutter doctor로 확인 그 다음으로 안드로이드 스튜디오 다운로드https://developer.android.com/studio?hl=ko Android 스튜디오 및 앱 도구 다운로드 - Android 개발자  |  Android Studio  |  ..

front-end 2025.01.17

스프링 시큐리티 JWT 간단 정리 -2

8. DB기반 로그인 검증 로직로그인 요청이 POST 경로로 넘어오면 시큐리티 필터에서 body에 있는 username과 password를 꺼내서 검증하는토큰 객체를 만들고, 그 객체를 Manager한테 넘겨주는 과정을 진행하였음 여태까지.실행을 하면 로그인을 검증하는 뒷부분이 완성이 안되어서 오류가 발생했었다 그래서 이제는 뒷부분을 구현할 예정~  UserRepository  UserRepository에 해당 유저를 조회하는 쿼리를 만들 것이다 리턴타입은 엔티티를 리턴하고 쿼리는 findByUsername내부 인자는 username으로 작성하면 됨이제 UserDetailsService에서 위 메서드를 통해서 특정 유저를 조회할 수 있게 되었다  UserDetailsService 커스텀 구현 우리가 커스..

spring 2024.09.06

스프링 시큐리티 JWT 간단 정리 -1

1. 간단한 동작 원리  - 구현 -인증 : 로그인인가 : JWT를 통한 경로별 접근 권한회원가입   회원가입: 세션 방식과 차이가 없음API 서버라서 POST 요청을 보내고 JOINCONTROLLER에서 요청을 받고 JOINSERVICE에서 처리 진행하고 USERENTITY에 담아서 REPOSITORY로 데이터베이스에 집어 넣는다 로그인:로그인 경로로 요청이 오면 1. USERNAME 어쩌구 필터를 통해 회원 검증을 한다MANAGER로 아이디 비밀번호를 던지고 내부적으로 로그인 검증을 한다로그인 성공하면 세션과 다르게 JWT는 세션에다가 회원정보를 남기지 않고 메서드를 통해JWT UTIL에서 토큰을 만들어서 응답해줌 경로 접근(인가):토큰을 헤더에 넣어서 요청을 진행해야 한다 특정 경로로 요청이 오면필..

spring 2024.08.30

[스프링 교과서] 스프링 컨텍스트: 빈 정의

스프링은 컨텍스트 안의 인스턴스를 사용해서 앱이 제공하는 다양한 기능에 앱을 연결한다컨텍스트는 사용자가 정의한 인스턴스를 스프링이 제어할 수 있게 해주는 복잡한 메커니즘이다. 2.1 메이븐 프로젝트 생성이 책에서는 아파치 메이븐 Apache Maven 프로젝트로 생성한다메이븐은 앱의 빌드 프로세스를 쉽게 관리할 수 있는 도구임빌드에 자주 포함되는 작업은 아래와 같다- 앱에 필요한 의존성 내려받기- 테스트 실행- 구문이 정의한 규칙 준수 여부 검증- 보안 취약점 확인- 앱 컴파일- 실행 가능한 아카이브에 앱 패키징   src 폴더 : 소스 폴더, 앱에 속한 모든 것을 넣을 수 있음ㄴ main 폴더 : 애플리케이션 소스 코드 저장ㄴ test 폴더 : 단위 테스트의 소스 코드 저장pom.xml 파일 : 새 종..

spring 2024.08.23