본문 바로가기

내가 배운 것들/알고리즘13

프로그래머스 67257 : 수식 최대화 수식 최대화 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 원래 이젠 티스토리에 알고리즘 관련된 글은 안 쓰려고 했는데 이건 어렵고 새로 써 본 기능이 있어서 적어놔야 할 것 같다.. 핵심 기능 : itertools.permutations 이 기능은, 순열을 돌아주는 기능이다. 굳이 factorial(n)만큼 경우의 수를 돌릴 필요가 없게 해 주는 것이다. ex) permutations(['+', '-', '*'], 3) -> (+,-,*) (+,*,-) (-,+,*) (-,*,+) (*,+,-) (*,-.. 2021. 12. 19.
알고리즘 푼 것들은 이제 깃헙에 올림 GitHub - Zabee52/study: 공부한 각종 내용들을 정리해놓은 곳입니다. 공부한 각종 내용들을 정리해놓은 곳입니다. Contribute to Zabee52/study development by creating an account on GitHub. github.com 티스토리 편집기 너무 불편해서 못 쓰겠다는 이유임니다... 2021. 11. 19.
항해99 11/13(토) 알고리즘 항해99 11/8(월) 알고리즘 TIL 나와 같은 조의 다른 사람들이 푼 문제 보기 고성범 님(https://velog.io/@davidko) 서유리 님(https://yuricoding.tistory.com/) 김우진 님(https://blog.naver.com/woojin126) 5. 문자열을 정수로 치환하기 코딩.. dazbee.tistory.com 에서 해결 못 했었던 21번 문제... 왜 안 되는지 알아냈다! 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr class Solution { .. 2021. 11. 13.
항해99 11/12(금) 알고리즘 - 알아서 푼 것들 설탕 배달 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int answer = 0; while(n > 0){ if(n % 5 == 0){ n -= 5; }else if(n % 3 == 0) { n -= 3; }else if(n - 5 >= 3) { n -= 5.. 2021. 11. 12.
항해99 11/12(금) 알고리즘 DFS - 깊이 우선 탐색(Depth Frist Scan) - 자식 노드, 자식의 자식, 자식의 자식의 자식... 계속 찾아가며 탐색하는 방식이다. - 자식이 존재하지 않으면 자신의 부모에게 돌아가 부모가 다른 자식이 있는지 찾아보고 존재할 시 다시 탐색한다. - 스택을 이용해 구현하면 편하다. - A B E K L F C G D H M I J push(A) push(B) push(E) push(K) pop() -- K push(L) pop() -- L pop() -- E push(F) pop() -- F pop() -- B push(C) push(G) pop() -- G pop() -- C push(D) push(H) push(M) pop() -- M pop() -- H push(I) pop() -- .. 2021. 11. 12.
항해99 11/11(목) 알고리즘 기본적인 지식은 이미 있기에 메모할만한 것만 정리해놓으려고 한다. 이진 탐색(binary search) - 시간복잡도는O(logN). 매우 빠르다. - 하지만 반드시 데이터가 정렬된 상태에서만 사용할 수 있다. public static boolean binarySearch(int[] arr, int target){ boolean result = false; int min_idx = 0; int max_idx = arr.length-1; while(min_idx target){ // target보다 크면 max_idx가 내려옴 max_idx = idx-1; }else if(arr[idx] < target){ // target보다 작으면 min_idx가 올라옴 min_idx = idx+1; } } retur.. 2021. 11. 11.