목록Algorithm (153)
다희의 코딩 성장일기
[ 문제 ] [프로그래머스] level2. 올바른 괄호 (자바 JAVA) 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr # 접근 방법 및 풀이 코드참조 level 1같음 # 주의할 점 없음 JAVA 코드 import java.util.*; class Solution { boolean solution(String s) { Stack stack = ne..
[ 문제 ] [프로그래머스] level2. 최댓값과 최솟값 (자바 JAVA) 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12939 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr # 접근 방법 및 풀이 코드참조 level 1같다. # 주의할 점 없음 JAVA 코드 import java.util.StringTokenizer; class Solution { public String solution(String s) { Str..
[ 문제 ] [프로그래머스] level2. 땅따먹기 (자바 JAVA) 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12913 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr # 접근 방법 및 풀이 일단 완탐을 해야된다고 생각했다. 해당 행에 어떤 열을 선택해서 다 더했을때 값이 최대이므로 다짜고짜 dfs짰다..^^ 당연히 시간초과 나서 다 틀렸다. 왜 나는 자꾸 시간범위를 생각해보지 않을까? n이 최대 10만이기 때문에 시간 초과..
[ 문제 ] [프로그래머스] level2. 124 나라의 숫자 (자바 JAVA) 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr # 접근 방법 및 풀이 풀이를 생각해내는데 어려워서 인터넷 찾아봤다..휴! 방법은 첫번째 방법과 두번째 방법이 있는데, 두번째 방법이 응용될 경우 더 좋을 것 같다. 먼저 첫번째 풀이는 3진법과 1,2,4를 엮은 방법이다. 3진법은 0, 1, 2로 표현이되고, 124나라는 1,2,4로 표현된다. 여기서 나머지가 0이 나올경우 4로 표현해주고 몫에서 -1을 해주면 된다. 그러나 이 방법은 1, 2, 4 나라일 경우만 표현 가능하다. 만약에 1..
[ 문제 ] [프로그래머스] level2. N개의 최소공배수 (자바 JAVA) 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr # 접근 방법 및 풀이 두 수의 최대공약수와 최소공배수 구하는 법은 익히 공식을 알아 쉬웠다. 여기서 N개의 최소공배수를 구하기 위해선 다음과 같은 법칙(?)을 알아야한다. 3가지 수 A, B, C 가 있을때 두 수 A와 B의 ..
[ 문제 ] [프로그래머스] level2. 행렬의 곱셈 (자바 JAVA) 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr # 접근 방법 및 풀이 내 머리가 돌인가 싶었던 문제..문제 보자마자 쉽다고 생각했는데 ^^.. 일단 행렬의 곱셈을 정확히 이해해야한다. 처음엔 아무생각 없이 arr1[i][j] * arr2[i][j]라고 생각했는데 당연히 아니구요. 행렬 AxB가 있을때 A ..