전체 글 191

Webhacking.kr_old 26_WriteUp (preg_match, urldecode)

https://webhacking.kr/challenge/web-11/ 문제 페이지에서 view-source 링크 누르면 아래와 같이 소스코드 출력 1 2 3 4 5 6 7 8 9 10 11 12 13 Colored by Color Scripter cs 그럼 id값이 admin이 아닌데, urldecode 함수를 통해 admin으로 인식 되어야 문제가 해결되는 것 => id값에 admin을 encoding 해서 넣으면 decoding 됐을 때 admin이 되지 않을까? 1st TRY) 안될 것 알지만 일단 확인 위해 admin 넣어보기 -> 실패 2nd TRY) admin을 인코딩해서 넣어보기 -> 실패 3rd TRY) admin을 두 번 인코딩해서 넣어보기 한번 인코딩..

프로그래머스_부대복귀(Java)

다익스트라(Dijkstra) 알고리즘 주어진 그래프에서 하나의 출발점으로부터 다른 모든 정점까지의 최단 경로를 찾는 알고리즘 이 알고리즘은 모든 가중치가 양수인 그래프에서 사용 출발점으로부터의 거리가 가장 짧은 정점을 선택하며, 이를 방문하여 해당 정점과 연결된 간선을 검토 출발점을 통해 해당 정점으로 가는 거리가 기존보다 더 짧을 경우, 거리를 업데이트하는 방식으로 최단경로 계산 시간 복잡도는 O((V + E) log V) (V: 정점의 수, E: 간선의 수) 답안 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ..

카테고리 없음 2023.07.21

프로그래머스_호텔 대실(Java)

누적합 (Cumulative Sum) 주어진 배열 또는 리스트의 각 요소까지의 누적된 합을 구하는 것 누적합은 배열의 원소를 한 번씩 순회하며 이전 요소들까지의 합을 누적하여 저장하는 방식으로 계산 이렇게 누적된 합을 이용하면 배열 내의 어떤 부분 배열의 합을 빠르게 계산할 수 있음 예) 원본 배열: [1, 2, 3, 4, 5] 누적합: [1, 3, 6, 10, 15] 누적합 시간복잡도 : 배열의 길이가 N일 때 O(N) 프로그래밍에서는 주로 누적합을 이용하여 특정 구간의 합을 빠르게 구하는 등의 연산에 활용 누적합을 사용하면 반복적으로 부분 배열 합을 계산하는 경우에 비해 더 효율적인 알고리즘을 설계할 수 있음 https://school.programmers.co.kr/learn/courses/30/l..

카테고리 없음 2023.07.21

프로그래머스_숫자의 표현_Java

https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 class Solution { public int solution(int n) { // k=k인 경우 늘 존재하므로, answer 초기값 1로 세팅 int answer = 1; // 숫자를 차례로 더하면서 주어진 수에 도달할 때 까지 반복 // 첫번째 for문은 시작하..

카테고리 없음 2023.07.17

프로그래머스_두 큐 합 같게 만들기(Java)

https://school.programmers.co.kr/learn/courses/30/lessons/118667?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 import java.util.*; class Solution { public int solution(int[] queue1, int[] queue2)..

프로그래밍 2023.07.10

프로그래머스_python lv0. n의 배수 고르기

https://school.programmers.co.kr/learn/courses/30/lessons/120905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 : 1 2 def solution(n, numlist): return [e for e in numlist if e%n == 0] cs 배수를 구하는 것은 주어진 수로 나누었을때 나머지가 0인 것을 찾으면 된다. comprehension 문법으로 한줄로 짧게 배열을 만들었다. 개선안 : 1 2 3 4 def solution(n, numlist): # lambda 식과 filter 함수 사..

프로그래머스_python lv0. 숫자 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/120904 내 답안 : 1 2 3 4 5 6 def solution(num, k): answer = 0 # num과 k 모두 str로 변환해 find함수 사용 answer = str(num).find(str(k)) if answer == -1 : return answer else : return answer+1 cs 개선안 : 1 2 def solution(num, k): return -1 if str(k) not in str(num) else str(num).find(str(k)) + 1 cs 다른 사람들의 풀이도 유사했다. 한 줄로 끝낼 수 있는 풀이라서 가져왔다. not in 구문도 사용 가능하..

프로그래머스_python lv0. 구슬을 나누는 경우의 수

https://school.programmers.co.kr/learn/courses/30/lessons/120840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 : 1 2 3 4 5 6 7 8 9 10 11 def solution(balls, share): #팩토리얼 구하는 함수 정의 def factorial(n): fac = 1 for i in range(1,n+1): fac *= i return fac # balls개 중에서 share개를 선택하는 경우의 수 answer = factorial(balls) / (factorial(balls -..

프로그래머스_python lv0. 개미 군단

https://school.programmers.co.kr/learn/courses/30/lessons/120837 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답안 : 1 2 3 4 5 6 7 def solution(hp): answer = hp//5 if hp%5!=0: answer += (hp%5)//3 if ((hp%5)%3)!=0: answer += (hp%5)%3 return answer cs 분명 짧은 코드로 풀 수 있을 것 같은 느낌이 들어 고민하다가 문제를 푸는데 의의를 두고 풀었다. 다시 봐도 지저분하다.. 개선안 : 1 2 def..