Lv 2. 숫자블록
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/12923?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   자연수 n에 대해, 1과 n을 제외한 약수 중에서 10,000,000 이하인 값 중 가장 큰 값을 찾아야 한다.만약 그런 값이 없다면 1을 반환해야 한다. 단, n이 1이라면 0을 반환합니다.처음 작성했던 코드에서는 n의 약수를 찾을 때 첫 번째로 발견되는 약수 쌍을 이용하여 바로 반환하는 방식이었다. 하지만 이 방식은 모든 경우를 정확하게 처리하지 못했다.  예를 들어, n = 20000010일 때, 약수는 [1,..
Lv 2. 혼자서 하는 틱택토
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   3 * 3 의 2차원배열에서 틱택토 게임을 진행하다가 만 상태 혹은 진행하던상태의 board가 주어지면 board 상태를 분석하여 이것이 정상적인 규칙에 따라 진행되었던 board의 상태인지아닌지를 확인하는 문제다. 그리하여 정상적인 규칙에 따라 진행되었던 board의 상태와 특징에 대해 분석하고여러 조건을 검토하여 규칙 위반 여부를 판단하는 형식으로 풀이 하였다.틱택토의 기본 규칙은 O와 X가 번갈아 가며 진행되며, 가로, 세로, 대각선..
Lv 3. 자물쇠와 열쇠
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   이문제는 자물쇠에 해당하는 조합을 찾는 문제이다.key[][] 와 lock[][] 이 주어질때 key를 90도 단위로 돌려가며lock에 맞추었을때 빈틈없이 맞아 진다면 true 를 반환하고 false를 반환하는문제다. 단순 구현 풀이법으로 문제를 풀이하였으며 회전하는 과정에서 90도, 180도, 270도 회전시 어떻게 체크를 해줄지생각을 해낸다면 쉽게 풀이할 수 있다. int[][] checkLock 을 선언하고 key를 90도로 돌려가며 ..
Lv 3. 가장 긴 펠린드롬
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/12904 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr    이 문제는 주어진 문자열에서 가장 긴 팰린드롬(앞뒤가 같은 문자열)의 길이를 구하는 문제다. 모든 가능한 부분 문자열을 탐색하며, 팰린드롬인지 확인한 후 길이를 계산해 최댓값을 갱신하는 방식으로 구현했다.solution 메서드는 문자열의 길이를 arrSize로 저장하고,모든 가능한 시작점 i와 끝점 j를 반복문으로 탐색한다.이때, j는 항상 i 이상부터 탐색하므로 부분 문자열의 범위를 점차 줄여가며 효율적으로 확인한다. 각 부분 문자열이 ..
Lv 3. 보석 쇼핑
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/67258?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   투포인터와 슬라이딩 윈도우 알고리즘을 활용하여풀이하였다.맨처음 생각한 것은 시작과 끝 두개의 지점을 정하고끝지점에서 하나씩 줄여나가고 보석의 갯수가 떨어지면 시작점을 늘리는 방식으로고민하였으나 그 마저도 예외가 존재할 수 있어 시작과 끝점을 1부터시작해 끝점이 올라가다가 보석 갯수가 보석종류와 일치할때시작점을 올려보면서 보석종류와 보석갯수가 달라질때를 찾고 최저점 갱신을 ..
Lv 2. 올바른 괄호
·
Algorithm & Data Structures/Programers
올바른 괄호 문제는 백준에서 한번 풀어보았던 문제이지만, 프로그래머스로 IDE 의 힘을 빌리지 않고 코드 작성을 해보니 쉽지 않은 문제였다. 디버깅을 위해 System.out.println() 을 이용하여 디버깅 하는 방법을 잘 연습 해 놓아야 할 것 같다. import java.util.*; import java.io.*; class Solution { boolean solution(String s) { Stack stack = new Stack(); boolean answer =true; int num = s.length(); int count = 0 ; for(int i = 0 ; i < num; i ++){ if(s.charAt(i)=='(') { count++; stack.add((char) s..