본문 바로가기

알고리즘 문제/프로그래머스21

[프로그래머스 - Java] 번 : 가장 큰 수 문제 https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 설명 처음에 순열을 구해서 모든 수를 구한 뒤에 최대 값을 구하면 되지 않을까라고 생각했다. 하지만 순열은 모든 수의 조합을 구하다보니 너무 커서 그런가 런타임 에러가 났다...ㅠㅠ 구글에 검색한 결과 역시 문제의 분류가 정렬이다보니 정렬로 풀면 쉽게 끝나는 문제였다..! 하지만 일반 정렬이 .. 2021. 6. 11.
[프로그래머스 - Java] 주식 가격 문제 https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 설명 스택 / 큐로 분류된 문제라 이걸 활용해야 하나 싶었는데 그냥 이중 for문으로 풀었다. 정확성, 효율성 시간초과 안나더라! 아무튼 현재 주식가격을 기준으로 그 이후의 주식 가격들을 순회하면서 시간을 + 1 해 나간다. 그러다 현재보다 작은 주식 가격을 만난다면 순회를 멈추면 된다. 이를 이중 for문으로 모든.. 2021. 6. 10.
[프로그래머스 - Java] 다리를 지나는 트럭 문제 https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 설명 처음엔 이걸 어떻게 풀어야 하지? 다리만큼 배열을 써서 트럭이 지나가는 것처럼 해야 하나...? 별별 생각이 다 들었다. 하지만 이 문제가 스택 / 큐 문제로 분류된 만큼 생각을 해보니 큐로 간단히 풀 수 있다! 큐를 다리라고 생각하고, 조건에 맞게 트럭을 큐에 넣고 빼면서 다리에 오르고 건너는 것을 구현하면 된다. 고려해야.. 2021. 6. 10.
[프로그래머스 - Java] N진수 게임 (2018 KAKAO BLIND RECRUITMENT) 문제 programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 설명 우선 10진수로 표현된 수를 n진법으로 변환시켜야 한다. (10진수 n진수 변환은 아래에서 설명) 변환된 수를 ArrayList에 차곡차곡 저장한다. 튜브 순서에 말할 수가 List에 없다면 현재 튜브 순서의 숫자를 진수 변환시켜 List에 저장하는 것을 반복하며 게임을 진행한다. 10진수로 N진수 구하기 1. List, Stack과 같은 자료구조 .. 2021. 5. 8.
[프로그래머스 - Java] 징검다리 건너기 (2019 카카오 개발자 겨울 인턴십) 문제 programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 설명 제한 사항을 보면 stones 배열의 크기는 1 이상 200,000 이하, stones 배열 각 원소들의 값은 1 이상 200,000,000 이하인 자연수이다. 한 명 한 명 징검다리를 건너 보내면서 총 몇 명이 징검다리를 건널 수 있는지 확인한다면 굉장히 많은 시간이 걸림. 시간 초과가 나서 효율성에서 탈락함ㅠㅠㅠ 시간을 줄일 방법을 생각해서 문제를 풀어야 한다. 1. 이진 탐색으로 풀이 이진 탐색을 이용해 탐색의 시간을 줄이자! * 이진 탐색과 관련된 포스트는 아래를 확인해주.. 2021. 2. 6.
[프로그래머스 - Java] 경주로 건설 (2020 카카오 인턴십) 문제 programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 설명 DFS로 모든 경로를 찾고, 경로마다 비용을 계산하며 최소 비용을 구하면 되겠다 생각도 했.. 2021. 1. 31.
[프로그래머스 - Java] 신규 아이디 추천 (2021 KAKAO BLIND RECRUITMNET) 문제 programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 카카오계정개발팀에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. 네오에게 주어진 첫 업무는 새로 가 programmers.co.kr 전체 코드 문제에서 요구하는 7단계에 따라 문자열 메소드를 잘 이용해 처리하면 된다. 코드에 단계별로 주석을 달아놓았다. class Solution { public String solution(String new_id) { // 1. 소문자로 변경 new_id = new_id.toLowerCase(); // 2. 소문자 숫자 -_. 제외한 모든 문자 제거 String.. 2021. 1. 29.
[프로그래머스 - Java] 수식 최대화 (2020 카카오 인턴십) 문제 programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 설명 연산을 위해 주어진 String 형태의 수식을 숫자와 연산자로 구분해 ArrayList에 저장한다. (모두 한 번에 expList라고 저장해서 풀기도 했었는데, 5개 정도의 테스트 케이스에서 런타임 에러 난다..ㅠㅠ왜지..?) 숫자의 경우 long으로 저장하고 계산한다. +, -, * 3개의 연산자를 바탕으로 순열을 구해 연산자 우선순위를 정한다. 구해진 순열을 .. 2021. 1. 29.
[프로그래머스 - Java] [1차] 뉴스 클러스터링 (2018 KAKAO BLIND RECRUITMENT) 문제 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 설명 자카드 유사도 구하기는 아래의 세 가지 순서로 진행된다. 1. 다중 집합 구하기 - 집합의 원소는 대소문자 구분 X / 영문자만 가능 (특수문자, 공백, 숫자 X) - 두 글자씩 끊어서 ArrayList에 추가해 다중 집합을 구할 것 - Character.isLetter() 메소드 (char값이 문자인지 판단해 true/false 반환)를 통해 문자인지 확인 - true일 경우 다중 집합의 원소로 추가 * 아래 코드 처럼 자바 정.. 2021. 1. 15.
[프로그래머스 - Java] 길 찾기 게임 (2019 KAKAO BLIND RECRUITMENT) 문제 programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 설명 전체 코드 import java.util.*; class Solution { public static ArrayList nodeList = new ArrayList(); public static int index = 0; public int[][] solution(int[][] nodeinfo) { // node 생성 for(int i = 0; i < nodeinfo.. 2021. 1. 12.
반응형