전체 글
-
[백준] 1059. 좋은구간알고리즘 2023. 4. 7. 15:37
1. 문제 https://www.acmicpc.net/problem/1059 2. 접근 1. 문제 이해가 어려운데, 좋은 구간은 ' n을 포함 & 구간안의 값들이 S에 포함 안되는 모든 경우의 수 ' 이렇게 이해해도 될거같다 2. 구간을 구하는 방법은 n이 포한되는 S의 (리스트 값+1), (다음 리스트 값)을 구하면 된다 3. 모든 경우의 수는 조합을 통해 구했다. 4. 모든 경우의 수에서 " 구간의 시작 값 > n의 값 " & " 구간의 끝 값 < n의 값 " 이면 경우의 수를 빼주면 된다 3. 풀이 import sys input = sys.stdin.readline from itertools import combinations as cb length = int(input()) s = list(ma..
-
[프로그래머스] 실패율알고리즘 2023. 4. 6. 17:35
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 접근 1. 실패율 = ( 도달 O & 클리어 X ) / ( 도달 O ) 2. 하나의 스테이지에 도달한 모든 유저가 통과를 했을 경우 즉, 특정 스테이지의 실패율이 0 일 가능성을 배제하면 안된다 3. len(stages) 가 총 유저 수라는 사실을 잊으면 안된다. 4. 나는 실패율 조정시, 분모의 값 부분에서 혼동이 있었는데 len(stages) 을 복사해서 cnt 값을 매 스테..
-
[암호화] property 암호화하기Health-Genie 2023. 4. 4. 23:59
Node에는 .env 파일이 있다면, Java에는 Jasypt가 있다 jasypt란 개발자가 암호화 작동 방식에 대한 깊은 지식 없이도 자신의 프로젝트에 기본 암호화 기능을 추가할 수 있도록 하는 java 라이브러리 특징 간편한 단방향 및 양방향 암호화 기술 제공 스레드로부터 안전함 ( 스프링 같은 싱글톤 환경에서 동기화 걱정없이 사용 가능 ) 원본 문자 집합에 대한 제약없이 사용 가능 ( 일본, 한국어 등의 언어 지원 ) Jasypt 사용법 1. Gradle 추가 implementation "com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.3" 2. Jasypt 파일 ( configuration File ) & main 쓰래드 있는 파일에 어노테이션 ..
-
[프로그래머스] [3차] n진수 게임알고리즘 2023. 3. 28. 13:31
문제 https://school.programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 1. 문제를 보면서 떠오른 생각 " n 진법으로 p + m * idx 자리에 있는 것을 말하되, t개를 말하면 되겠다 " 2. 10진수 -> n진수로 변경하는 함수를 만들어 준다 3. 처음 p의 자리부터 말하면 되는데, 최대 p + m * t 개까지 변환을 시켜준다 4. idx의 값을 조정하면서 ans에 넣어주면 되는데 리스트의 시작은 0임을 잊지말자 ( res[p+idx-1]에서 -1..
-
[프로그래머스] LV2. 1차 캐시알고리즘 2023. 3. 27. 14:40
문제 https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 1. LRU 는 가장 오랫동안 사용하지 않은 페이지를 교체하는 알고리즘이다. 2. stack을 사용해서 해결하면 되는데 주의할점이 2가지가 있었다. ( 주의할점 1번. stack에 포커싱하다보면 현재 값이 stack에 들어있을때 아무런 생각없이 stack.pop(0)을 해주는 경우가 생길 수 있다. 이때는 stack.pop(stack.index(i)) 를 해줘야 한다!! -> 20번째줄..
-
[프로그래머스] LV2. 주차요금 계산알고리즘 2023. 3. 20. 14:26
문제 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 1. 들어가고 나오는 순서가 중요하지 않으니 stack,queue 말고 dict으로 풀면 된다 생각함 2. status를 두어서 후에 같은 차량이 들어와도 상관없게 함 3. status을 기준으로 누적 시간을 구함 4. ceil 대신에 시간이 더 있으면 한번더 추가요금을 내는걸로 계산함 풀이 from collections import defaultdict def solution(fees..
-
[프로그래머스] LV1. 모의고사알고리즘 2023. 3. 13. 16:29
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 1. 처음에는 dict를 쓸 생각을 못했고,first, second, third 이런식의 변수에 +=1 을 하면서 사용하려함 2. 마지막에 가니까 first = 1 , second = 2 이런식으로 key 값이 필요하다는 생각에 dict를 사용시작함 3. 마지막에 최댓값이랑 비교하면서 최댓값이면 새로운 리스트에 값 넣고 최댓값이랑 같은 값이면 res.append 했음 풀이 def sol..
-
[프로그래머스] LV1. 성격 유형 검사하기알고리즘 2023. 3. 13. 15:59
문제 https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 1. 문제를 읽어보니 dict 를 써야할거라는 확신이 듦 2. 8가지 중 2가지씩 짝을 지어갈것 3. choice값 중 4점을 기점으로 각 점수를 key에 맞는 value 값에 증가 시켜주기 4. 2가지 유형을 하나의 세트로 볼때 세트 별 점수가 같으면 사전순으로 넣어주기에 저런 중복되는 코드가 나옴 풀이 1차 코드 -> 성공은 하는데 중복코드가 너무 많음 ( 나중에 기회가 되면 줄여..