본문 바로가기

코딩테스트 연습/프로그래머스

(41)
[ 프로그래머스 ] Lv2 연습문제 > 최소값 만들기 java로 풀이한 코드이다. 항상 프로그래머스는 빠르게 완탐하면 다 시간초과가 난다. ㅎㅎㅎ 흑흑 아까우니여기다 써놔야지.. 문제 설명 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.) 예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면 A에서 첫번째 숫자인 1, B에서 두번째 숫자인 5를 뽑아 곱하여 더합니다. (누적된 값 : 0 + 5(1x5) = 5..
[ 프로그래머스 ] Lv2 연습문제 > 최대값과 최솟값 ( 자바 ) 문제 설명 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 1 2 3 4라면 1 4를 리턴하고, -1 -2 -3 -4라면 -4 -1을 리턴하면 됩니다. 제한 조건 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 입출력 예 sreturn 1 2 3 4 1 4 -1 -2 -3 -4 -4 -1 -1 -1 -1 -1 StringTokenizer 함수를 이용하여 문자열을 슬라이싱 하는 것이 중요한 문제이다. split을 쓰기도 하지만 StringTokenizer가 빠르다고 알고 있다. 반복문을 돌면서 st.hasMoreTokens()로 더 이상의 ..
[ 프로그래머스 ] Lv.2 폰켓몬 - 자바 프로그래머스 Level 2 문제이다. 찾아라 프로그래밍 마에스터 에 나왔으며, 자료 구조 문제이다. 포가 아닌 폰켓몬인지는 이 글을 쓰면서 꺠달았다. java로 작성하여 풀이한다. 문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. ..
[ 프로그래머스 ] level 2 : 땅따먹기 ( 자바) 프로그래머스는 level2도 왜 이렇게 어려운지 모르겠다..흑흑 Programmers Lv.2 dp (동적계획법 : 메모이제이션) 문제 풀이이다. java 를 기준으로 풀이를 작성 한다. [ 문제 설명 ] 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다. 예를 들면, | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | 로 땅이 주어졌다면, 1행에서 네번째 칸 (5)를 밟았으면, 2행의..
[ 프로그래머스 ] Level 2 다음 큰 숫자 - Java (자바) 자바도 필터 어쩌고가 있었던거 같은데 그거 쓰면 편할 거 같은데, 사용해서 좋은 함수는 Integer.toBinaryString(number); // 2진수 문자열로 바꿔준다. 여기에서 1의 개수를 찾으며 탐색하면 풀수 있다. 더 쉬운 방법이 있을 것 같지만 푸는게 중요하지... 문제 설명 더보기 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변..
[ 프로그래머스 ] Level 2 - 연습문제 : 올바른 괄호 ( Java : 자바) 쉬운 문제 풀면 기분이 좋그든여~~ stack을 사용하면 간단하게 풀리는 문제 이다. 문제 설명 더보기 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 입출력 예 sanswer ()() true ..
[ 프로그래머스 ] Level 2 - 튜플 ( python : 파이썬) 문제 설명 : https://programmers.co.kr/learn/courses/30/lessons/64065?language=python3 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 이전 글인 java에서 파이썬으로 바꾸기만 한 코드이다. 잘하는 사람들은 슉슉 filter로 바꿀거 같은데.. def solution(s): answer = [] s = s.replace("{", "") strs = [i for i in s.split("}") if ..
[ 프로그래머스 ] Level 2 - 튜플 ( Java : 자바 ) 진짜 이문제 문제 이해 때문에 죽을 뻔 했다... 왜 문제 이렇게 써놨어.. 튜플은 비록 중복인 값이 들어갈 수 있지만 이 문제의 튜플에는 중복이 없다.. 문제 설명 더보기 문제 설명 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다. (a1, a2, a3, ..., an) 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 수 있습니다. ex : (2, 3, 1, 2) 원소에 정해진 순서가 있으며, 원소의 순서가 다르면 서로 다른 튜플입니다. ex : (1, 2, 3) ≠ (1, 3, 2) 튜플의 원소 개수는 유한합니다. 원소의 개수가 n개이..