문제 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { static ArrayList arr []; public int solution(int n, int[][] wires) { arr = new ArrayList[n+1]; for(int i=1;i
문제 https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이중 for문을 이용하게 된다면 최대 100,000 * 100,000 = 10,000,000,000 번 돌아가서 시간 초과가 발생한다. 따라서 for문 하나만 이용하여 문제를 풀어야 한다. 각 값에 대해 이전에 같은 값이 있었는지 확인하면서 문제를 풀면 된다. 즉, 배열을 이용하여 index를 weight*2,3,4 로 두고 배열 index의 값에 대해 같은 index가 나오면 그 배..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 구현문제인데 어려운 문제였다. 다시 풀어야 되는 문제 처음에 풀었을 때 맨 마지막 문자열을 처리가 안되어서 애를 많이 먹은 문제였다. 풀이 반복되는 문자의 길이는 주어진 문자열 길이의 절반을 넘을 수 없다. 이를 for문을 이용하여 반복되는 문자의 길이를 증가시킨다. 주어진 문자열에서 처음부터 반복되는 문자열이 몇개인지를 찾아나가야 한다. 중간부터 시작해서 찾아나가는 것이 아니다. count..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { public int solution(int[] nums) { HashMap hashMap = new HashMap(); for(int i=0;i hashMap.size() ? hashMap.size() : nums.length/2; return answer; } }
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { static boolean visited[]; static Set set = new HashSet(); public int solution(String numbers) { int answer = 0; visited = new boolean[numbers.length()]; back(numbers, ""); Iterator..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 매우 단순한 문제인데 삽질했다. 가로, 세로에 얽메이지 않고 그냥 가로는 긴거 세로는 짧은거라고 생각하고 각 이차원 배열에서 가로 길게, 세로 짧게 만들어 준다음 최대값을 구해서 곱해주면 된다. 너무 어렵게 생각해서 문제 푸는데 애먹었다. 코드 class Solution { public int solution(int[][] sizes) { int w = 0; int h = 0; for(..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제에서 배열의 길이는 100,000 이하이며 원소는 1,000이하의 수가 된다. 이럴 경우 백트레킹은 시간 초과로 풀이 하지 못하며, 자료형을 이용해서 풀이할 수 없다. 따라서 String 리스트를 만들어 정렬을 해주도록 했다. 정렬을 할 경우에는 두 수를 조합했을 때 더 큰수가 되도록 정렬을 하면 된다. 코드 import java.util.*; class Solution { publ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/62048# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 풀이1. 문제의 예제 그림을 회전시키면 보기 쉽게 바꿀 수 있다. 패턴이 반복되어 나타나므로 패턴을 잘라 자세히 살펴보자 패턴을 잘랐을때의 가로를 W', 세로를 H'라고 해보자. W'가 1 증가할 때마다 흰사각형이 1 증가하는 것을 확인할 수 있다. 또한, 선이 가로선을 지날때 흰사각형이 1 증가한다. 가로선의 개수는 H' - 1 이 된다. 즉, 이를 식으로 나타내면 W' + H' -..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { public int[] solution(int[] array, int[][] commands) { int [] answer = new int [commands.length]; for(int i=0;i
문제 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 글자가 하나씩 바뀐다고 한다. => 글자들이 이어져 있다 => bfs 문제라 생각하고 문제를 풀었다. bfs를 할 때 가장 고민이었던것이 while문 안에를 어떻게 설계하냐였다. 처음 풀 때는 단어의 길이도 최대 10이고 words의 개수도 최대 50이여서 단순하게 생각하였다. 단어의 각 문자마다 'a'부터 'z'까지 변경하여 words 배열에 있는지 확인하고 있으면 que에 넣는 식으..