[Java] 프로그래머스 : 옹알이(2) https://school.programmers.co.kr/learn/courses/30/lessons/133499 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 일단 연속으로 두개의 단어를 발음하지 못하므로, "ayaaya", "yeye", "mama", "woowoo"와 같은 단어가 나오면 제외시킨다. 나머지의 경우는 그냥 replace함수를 사용하여 공백처리를 해주었다. 첫번째 시도 import java.util.*; class Solution { public int solution(String[] ba..
[Java] 프로그래머스 : 숫자 짝꿍 https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 주어진 두 수에서 공통으로 나타나는 정수 세 개를 찾아내고, 그 숫자들로 만들 수 있는 가장 큰 세자리 정수가 무엇인지 알아내야 한다. 짝이 없으면 -1을, 짝이 0으로만 구성되면 0을 출력해야 한다. 짝을 만들 때, 각각의 값을 기존 값에서 제외시키도록 해야 한다. 예를들어, X = 5525, Y = 1255면 X에는 5가 3개, Y에는 5가 2개이..
[Java] 프로그래머스 : 로또의 최고 순위와 최저 순위 https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 최대한 많이 맞히는 경우와 최대한 적게 맞히는 경우에 대해서 생각해 보았다. 최대한 많이 맞히려면, 0으로 들어온 값은 반드시 당첨 번호로 카운트를 해줘야 하며, 최대한 적게 맞히려면, 0으로 들어온 값은 반드시 틀린 번호이므로 카운트 하지 않아야 한다. 당첨 번호의 기준은 순서 상관 없이 번호만 일치하면 되기 때문에 해시맵을 사용해..
[Java] 프로그래머스 : K번째 수 https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 처음에 commands의 각 요소들이 두자리 수 이상의 정수가 온다는 것을 인지하지 못하고 String으로 변환하여 substring으로 잘라내다가 2, 6번 케이스에서 오류가 났었다. array가 [1, 5, 2, 6, 3, 7, 4]와 같은 경우, String으로 변환하면 1526374가 되고 필요한 부분을 잘라 각각을 정수로 다시 변환하여 k번째 ..
[Java] 백준 2206 : 벽 부수고 이동하기 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 접근 일반적인 bfs 방문체크에서 벽을 부수는 것을 옵션으로 추가해야하는 문제이다. visted를 3차원 배열로 선언하여, x, y축과 벽을 부섰는지의 여부를 체크할 수 있도록 구현했다. 최초 방문체크를 할 때 벽을 아예 부수지 않는 탐색자와 벽을 한 번 부술 수 있는 탐색자로 나눈다. visited[x][y][0] = t..
[Java] 백준 14226 : 이모티콘 https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만 www.acmicpc.net 접근 1. 화면에 있는 이모티콘을 모두 복사해서 클립보드에 저장한다. 2. 클립보드에 있는 모든 이모티콘을 화면에 붙여넣기 한다. 3. 화면에 있는 이모티콘 중 하나를 삭제한다. 화면에 있는 이모티콘의 수를 x, 클립보드에 있는 이모티콘의 수를 y라고 가정한다. 복사 -> 클립보드 저장의 경우: [x, y] -> [x, x] 붙여넣기의 경우: [x, y] -..