알고리즘(6)
-
[알고리즘] 프로그래머스 예상 대진표 (레벨 2)
프로그래머스 레벨2 문제 중 '예상 대진표'라는 문제입니다. 문제 출처 : 링크 규칙 찾기 풀이 포인트 대진표 계산하는 문제입니다. 계속 틀리던 부분이 '경기를 진행해서 승부가 나는 것 까지' 연산을 해주어야 합니다. class Solution { public int solution(int n, int a, int b) { int answer = 0; while(true){ a = (a/2) + (a%2); b = (b/2) + (b%2); answer++; if(a == b) break; System.out.println( a + " " + b); // 테스트 케이스 7, 9, 27, 33이 틀리네. } return answer; } }
2022.12.05 -
[알고리즘] 프로그래머스 가장 큰 수 (레벨 2 - 정렬)
프로그래머스 레벨2 문제 중 '가장 큰 수'라는 문제입니다. 정렬 문제입니다. 문제 출처 : 링크 정렬 풀이 포인트 해당 문제는 제가 풀이를 찾다찾다... 해결이 안되서 다른 분 풀이를 참고하였습니다. 가장 큰 수를 만드는 방법을 먼저 찾아야 됩니다. 주어진 예시를 적절히 배치할 때 큰수로 만들려면 위 그림처럼 만들어야 됩니다. 위 처럼 비교를 하기 위해서는 Interger Type을 비교하는 것이 아니라 String Type을 비교함으로서 간단하게 처리할 수 있습니다. import java.util.*; class Solution { public String solution(int[] numbers) { String answer = ""; String[] str = new String[numbers.l..
2022.12.05 -
[알고리즘] 프로그래머스 모음사전 ( 레벨2 - 완전탐색 )
프로그래머스 레벨2 문제 중 '모음사전'이라는 문제입니다. 완전 탐색입니다. 문제 출처 :링크 완전탐색 관련 문제 : 아직 못 찾음 풀이 포인트 완전 탐색인데 규칙을 찾아서 연산 횟수를 비약적으로 단축시키는 방법입니다. 기본적으로 A의 배치는 1씩 증가합니다. 다음 모음부터는 자리수마다 781, 156, 31, 6, 1씩 증가합니다. 모음 사전 만드는 규칙이 AAAAA -> AAAAE 이렇게 되는 것은 1씩 증가하기 때문입니다. AAAAA -> AAAEA 는 다섯번째 자리가 1씩 증가하고 네번째 자리가 1 증가했기에 6씩 증가하는 것입니다. 같은 이유로 각 자리의 모음이 다음으로 증가하는 과정에서 위 규칙이 적용됩니다. class Solution { public int solution(String wor..
2022.12.05 -
[알고리즘] 프로그래머스 땅따먹기 ( 레벨2 - DP)
프로그래머스 레벨2 문제 중 '땅따먹기'라는 문제입니다. DP 기본 문제입니다. 문제 출처 : 링크 DP 관련 문제 : 프로그래머스 '가장 큰 정사각형 찾기' 문제 풀이 포인트 완전 탐색으로 풀이를 시도하게 되면 시간 초과가 발생하는 문제였습니다. 그래서 각 단계별로 진행하는 과정에서 최대가 되는 값을 메모라이제이션 해야되는 문제였습니다. 1행의 경우는 이전 값이 없기에 그대로 메모라이제이션 됩니다. 2행 부터는 1행의 같은 열을 제외한 나머지 값들과 합을 구해보고, 그 합들 중 최대가 되는 값을 저장해야 됩니다. 가령 2행의 4열 값인 8을 보면 이전 행의 5와 합을 할 수 없기에 최대값은 11이 되는데, 메모라이제이션 배열을 보면 해당 값이 최대가 아닙니다. class Solution { privat..
2022.12.05 -
[알고리즘] 프로그래머스 숫자의 표현 ( 레벨2, 완전탐색 )
프로그래머스 레벨2 문제 중 '숫자의 표현'이라는 문제입니다. 완전탐색 기본 문제입니다. 문제 출처 : 링크 완전 탐색 관련 문제 : 백준 영화감독 숌 문제(BOJ1436) - 나의 풀이코드 풀이 포인트 주어지는 입력 조건을 고려했을 때 완전탐색으로 풀이가 가능한 범위입니다. (n은 10,000 이하의 자연수) 연속된 숫자의 합으로 표현한다는 조건에서 '연속된'이 포인트입니다. class Solution { public int solution(int n) { int answer = 0; for(int i = 1; i
2022.12.05 -
백준 16637 - 괄호 추가하기 ( 백준 16638, 백준 16639 )
백준 괄호 추가하기 문제입니다. 최근에 기업 알고리즘 테스트를 보는 과정에서 해당 문제를 조금 변형한 문제가 나왔는데, 제대로 풀지를 못했습니다. 일단 이 문제의 풀이가 기억이나서 해당 방식으로 풀어보려고 했으나, 쓰읍.... 역시 제대로 익혀두지 않으면 응용이 안되서 안풀립니다. 풀이를 한번 정리해보고자 합니다. 최초 접근 입력을 살펴보니 수식의 길이(length)는 '1
2022.11.24