전체 글(361)
-
[Programmers] 디펜스 게임
https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제 자체는 명료하다. 적의 공격을 순서대로 막되 무적권을 활용하여 최대한 많은 라운드롤 막아내야 한다. 문제를 잘 이해했다면 무적권은 가능한 적이 많을 때 사용하는 것이 효율적이라는 것을 알 수 있다. 그렇다면 그 '가능한 적이 많을 때' 를 어떻게 처리해야 할까? 처음에는 정렬을 이용해서 해결하려고 했다. enemy를 내림차순 정렬하고 k + 1번째부터 시작하는 식으로 접근했다. ..
2023.09.19 -
[Programmers] 숫자 카드 나누기
https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 이 문제는 최대공약수라는 키워드를 떠올리면 빠르게 해결할 수 있다. 문제는 한 쪽의 카드들은 모두 나눌 수 있고 다른 쪽의 카드는 모두 나눌 수 없아야 하는 수 중에 가장 큰 수를 찾는 것이다. 그렇다면 한 쪽의 카드를 모두 나눌 수 있는 수 중 가장 큰 수는 무엇일까? 바로 최대공약수이다. 한 쪽의 최대공약수를 구했으면 그 수를 가지고 다른 쪽의 수를 모두 나누어보면 된다. 그러다 ..
2023.09.18 -
[Programmers] 가장 큰 수
https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 주어진 숫자들을 이어붙여서 가장 큰 수를 만들면 되는 문제이다. 처음엔 문자열 배열에 넣고 정렬했다. 이렇게 하면 사전 순서대로 정렬되므로 이어 붙이기 수월했다. 그러나 34, 3, 30 과 같은 경우에 문제가 생겼다. 이런 경우를 어떻게 해야 할까 생각하다 다른 사람의 풀이를 보았는데 아주 간단했다. 정렬을 앞 문자열 + 뒷 문자열과 뒷 문자열 + 앞 문자열을 한 값으로 하면 되는 것..
2023.09.18 -
[Programmers] 숫자 짝꿍
https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 두 문자열에서 중복된 숫자를 가지고 가장 큰 숫자를 만들어야 한다. 이를 풀기 위해 각 문자열 별로 숫자의 등장 횟수를 저장할 배열을 만든다. 그리고 문자열을 순회하면서 숫자 등장 횟수를 체크한다. 그 다음에 9에서부터 내림차순으로 루프를 돌면서 x[i]와 y[i] 중 더 작은 값만큼, 즉 두 문자열에서 해당 문자가 중복된 횟수만큼 문자열에 추가한다. 만약 문자열의 길이가 0이라면 아..
2023.09.14 -
[Programmers] 대충 만든 자판
https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문자를 다루는 방법을 시험하는 문제이다. 이 문제는 버튼의 최소 누름 횟수를 알면 해결할 수 있다. 그래서 알파벳 누름 횟수를 알기 위해 크기가 26인 배열을 만들어 놓고 keymap에 주어진 모든 문자열을 순회하면서 각 알파벳이 배열에 있는지를 확인한다. 0이 아니라면 최솟값을 비교하고 0이라면 처음 나온 값이므로 배열에 저장한다. 그 다음 targets 배열을 순회하면서 targe..
2023.09.14 -
[Programmers] 행렬 테두리 회전하기
https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 배열을 다루는 능력을 시험하는 구현 문제이다. 알고리즘은 크게 없이 주어진 조건대로 구현하면 된다. 코드 class Solution { public int[] solution(int rows, int columns, int[][] queries) { int[] answer = new int[queries.length]; int[][] matrix = new int[rows][column..
2023.09.13