택배 배달과 수거하기
·
문제풀이/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr package 프로그래머스.자바.택배배달과수거하기; class Solution { public long solution(int cap, int n, int[] deliveries, int[] pickups) { long answer = -1; // 1. 투 포인터 각각 최대점부터 시작 int d, p; d = p = n-1; // 2. 최대 거리를 저장할 변수 int dist = 0; long result = 0; // 3. d, p가 모두 -1이 되면 멈춤 while(d >= 0 || p >= 0){ dis..
리코쳇 로봇
·
문제풀이/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { static int Rx, Ry, N, M, min = Integer.MAX_VALUE; static char[][] map; static boolean[][] visited; class Pair{ int x; int y; int count; public Pair(int x, int y, int count){ this.x =x; this.y = y; this.count = count; } } Queue q = new LinkedList(); v..
[Spring webFlux] Unable to load io.netty.resolver.dns.macos ... 오류
·
트러블 슈팅
문제webFlux 디펜던시를 추가한 후 서버를 실행하니 다음과 같은 오류가 나타났다.2024-03-28T17:41:10.857+09:00 ERROR 9091 --- [nio-8080-exec-2] i.n.r.d.DnsServerAddressStreamProviders : Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'...
푸드 파이트 대회 Java
·
문제풀이/프로그래머스
package 프로그래머스.자바.푸드파이트대회; import java.util.*; class Solution { public String solution(int[] food) { String answer = ""; StringBuilder sb = new StringBuilder(); for(int i = 1; i < food.length; i++){ for(int j = 0; j < food[i]/2; j++){ sb.append(i); } } String s = sb.toString(); String rev = sb.reverse().toString(); answer = s + "0"+rev; return answer; } }
JWT를 이용한 로그아웃 구현
·
개발 지식
Stateless한 JWT는 안전한 로그아웃을 구현할 수 없다 JWT 방식으로 발급한 토큰의 제어권은 서버가 가지고 있지 않다. 구조적으로 생각해보면 당연한 이야기이다. JWT를 사용하는 장점이 Stateless함을 바탕으로 빠른 인증 처리인데, 그 과정에서 서버는 해당 토큰이 유효한지 만을 체크하기 때문에, 서버에선 해당 토큰에 대한 정보가 아무것도 없다. 따라서 토큰이 탈취당한 경우 다음과 같은 상황이 발생한다. 사용자A = 토큰의 주인 해커 = 사용자 A의 토큰 탈취자 사용자 A가 서버에 로그인 요청 서버 : 보자.. 토큰이 유효하네? 패스~ 해커가 사용자 A의 토큰으로 로그인 요청 서버: 보자.. 토큰이 유효하네? 패스~ 이런 상황은 JWT 토큰의 유효시간을 줄이면 그나마 좀 방지가 될 것 같다..
공원 산책 Java
·
문제풀이/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { int[] dx = {-1, 1, 0, 0}; int[] dy = {0, 0, -1, 1}; int[][] map; int x, y, nx, ny, N, M; boolean isBlocked; void move(int dir, int dist){ isBlocked=false; int i = 0; nx = x; ny = y; while(i < dist){ nx += dx[dir]; ny += dy[dir]; if(nx < 0 || ny < 0 |..
가장 가까운 같은 글자 Java
·
문제풀이/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { public int[] solution(String s) { int[] answer = {}; int[] arr = new int[26]; answer = new int[s.length()]; Arrays.fill(arr, -1); for(int i =0 ; i < s.length(); i++){ char c = s.charAt(i); if(arr[c-'a']== -1){ answer[i] = -1; arr[c-'a'] = i; }else{ a..
둘만의 암호 Java
·
문제풀이/백준
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { public String solution(String s, String skip, int index) { String answer = ""; StringBuilder sb = new StringBuilder(); // 알파벳 26개중 skip인 것을 구별하는 boolean 배열 boolean[] skipList = new boolean[26]; for(int i = 0; i < skip.length(); i++){ skipList[skip.ch..
파일 경로 설정과 URL 객체 인코딩 트러블슈팅
·
트러블 슈팅
파일을 통한 입출력을 테스트하던 중, 크게 두 가지 오류가 발생했다. 문제 해결 과정을 설명하기에 앞서 오류 발생 코드는 다음과 같다. Calculator는 파일에 쓰여진 숫자를 라인단위로 읽고, 그 합을 모두 더하는 클래스이다. 실행 과정 1. Calculator 객체 생성 2. calcSum 함수의 매개변수로 "numbers.txt" 파일의 경로를 넘김 3. calcSum함수는 매개변수로 넘어온 경로의 파일을 읽고, sum을 리턴함 4. 리턴 값이 10과 일치하는지 검사 첫번째 오류 문제 상황 getResource() 메서드가 null 값을 반환하여 getPath() 함수를 호출할 수 없다는 오류가 발생한다. 문제 원인 getClass.getResource()는 호출한 클래스 패키지를 기준으로 상대경..
다단계 칫솔 판매 Java
·
문제풀이/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr package 프로그래머스.자바.다단계칫솔판매;import java.util.*; class Solution { // 이름과 번호가 키 쌍으로 들어감. Map map = new HashMap(); int[] arr; void dfs(int x, int money, int[] answer){ int giveMoney = (int)(money*0.1); int myMoney = money - giveMoney; answer[x] += myMoney; if(arr[x] == -1) return; dfs(arr[x]..
OSNIE
osnie