본문 바로가기

전체 글

(103)
[PGS] 프로그래머스 - N개의 최소공배수 (JAVA) https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최대공약수, 최소공배수 로직을 알고 있으면 금방 풀 수 있는 문제이다. 두개의 수로 차례대로 최소공배수를 구해나가면 마지막 수가 n개 수의 최소공배수가 된다. import java.util.*; class Solution { public int solution(int[] arr) { int answer = arr[0]; for(int i=1; i
If문 vs Switch문 💡문득 if문과 switch문의 차이가 궁금해져서 찾아보았다. If문 (branch statement 기반) if문은 조건이 만족하면 실행, 만족하지 않으면 무시한다. 조건이 만족하지 않으면 조건이 만족하거나 else if 문을 종료할 때까지 다음 조건문을 계속 확인한다. 따져야하는 조건이 많을수록 연산량이 늘어난다. if문을 작성할 때, 자주 사용하는 기능 순서대로 조건문을 작성하는 것이 성능 향상에 도움이 된다. 장점 : 점프테이블을 만드는 오버헤드가 없다. 단점 : if 혹은 else if를 만날 때마다 조건을 확인하기 위한 instruction이 계속해서 필요된다. -> 따져야 할 조건 수가 적을 경우 if-else를 쓰는 것이 유리하다. Switch-case 문 (jump statement 기반..
[BOJ] 12100번 : 2048(Easy) (JAVA) https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 1. 상,하,좌,우 이동에 따른 map을 계속 저장하며 dfs를 수행한다. 2. 이동횟수 5번이 되면 return 3. 최종적으로 MAX 값을 출력한다. move method는 이 방식으로 동작한다. import java.util.*; import java.io.*; public class Main { static int N; static int map[][]; sta..
[SWEA] 1949. 등산로 조성 (JAVA) https://swexpertacademy.com/main/solvingProblem/solvingProblem.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 등산로는 가장 높은 봉우리에서 시작해야하므로 지도를 입력하면서 가장 높은 봉우리를 구한다. 2. 가로 또는 세로 방향으로 연결 되어야 하므로 사방탐색을 한다. 높이가 낮은쪽으로만 이동할 수 있다. 3. 딱 한 곳을 정해서 최대 K 만큼 깎을 수 있다. -> 여기서 생각을 많이 했는데, 최대 K 만큼 깎을 수 있으므로 이동할 봉우리에서 K만큼 뺐을 때 현재 봉우리보다 작으면 이동이 가능하며, 이동할 봉우리를 현재 봉우리보다 1만큼 작은 수가 되..
[알고리즘] 이분탐색 int BinarySearch(int arr[], int target) { int left = 0; int right = arr.length-1; int mid; while(left target) right = mid-1; else left = mid+1; } return -1; } 1. 내가 찾아야 할 범위를 left ~ right 로 설정한다. 2. 정답을 mid로 간주하고 유효한지 확인한다. 3. 2를 따지며 left, right를 줄여나간다. (right = mid-1, left = mid+1) 4. left > right가 되면 종료한다.
[PGS] 프로그래머스 - 입국심사 (JAVA) https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; import java.io.*; class Solution { public long solution(int n, int[] times) { long answer = Long.MAX_VALUE; Arrays.sort(times); long left = 0; long right = times[times.length-1] * (long)n; while(left
[PGS] 프로그래머스 - 다리를 지나는 트럭 (JAVA) https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; import java.io.*; class Solution { static Queue bridge; static Queue trucks; public int solution(int bridge_length, int weight, int[] truck_weights) { int answer = 0; bridge = new LinkedList(); trucks = ..
HTTP Method GET: 서버로 부터 데이터를 취득 POST: 서버에 데이터를 추가, 작성 등 PUT: 서버의 데이터를 갱신, 작성 등 DELETE: 서버의 데이터를 삭제 HEAD: 서버 리소스의 헤더(메타 데이터의 취득) OPTIONS: 리소스가 지원하고 있는 메소드의 취득 PATCH: 리소스의 일부분을 수정 CONNECT: 프록시 동작의 터널 접속을 변경 1. GET : 데이터를 읽거나 검색할 때 사용 idempotent(멱등)하다. 같은 요청을 여러번 하더라도 항상 같은 응답을 받을 수 있다. 데이터를 변경하는 연산에 사용하면 안된다. 데이터 조회에 성공하면 Body 값에 데이터를 저장하여 성공 응답을 보낸다. 캐싱이 가능하며 같은 데이터를 한번 더 조회할 경우 저장한 값을 사용하여 조회 속도가 빨라진다. 2. P..