본문 바로가기

코딩테스트

(4)
[코딩 테스트] leet code 6. Zigzag Conversion Input: s = "PAYPALISHIRING", numRows = 3 이런식으로 변경할 값과 3이 마다 위아래로 움직이는 방식이다. P A H N A P L S I I G Y I R StringBuffer을 높이 만큼 만든 다음, 높이 0 과 numRows-1 이 되면 반대로 움직이면 StringBuffer안에 넣는다. 그리고 String으로 만들어 리턴을 하면 값이 나옵니다. public String convert(String s, int numRows) { if (numRows == 1) return s; List rows = new ArrayList(); for (int i = 0; i < Math.min(numRows, s.length()); i++) rows.add(new StringBuil..
[프로그래머스] - 가장 큰 수 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 6, 10, 2 을 넣게 되면 6210 이 출력되어야 한다. 숫자에서 정렬을 시도하면 엉뚱한 값이 나올 수 있으므로 문자로 변환후, 정렬해봐야 알수가 있다. 1. 이중 for문 사용 // 숫자 -> 문자 -> 내림차순정렬 -> 조합 Strin..
[코딩테스트] 백준 - N번째 큰 수 N번째 큰 수 문제 N×N의 표에 수 N2개 채워져 있다. 채워진 수에는 한 가지 특징이 있는데, 모든 수는 자신의 한 칸 위에 있는 수보다 크다는 것이다. N=5일 때의 예를 보자. 이러한 표가 주어졌을 때, N번째 큰 수를 찾는 프로그램을 작성하시오. 표에 채워진 수는 모두 다르다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. 출력 첫째 줄에 N번째 큰 수를 출력한다. -> 배열에서 정렬로 풀기 처음에는 쉽게 배열로 넣어서 정렬을 하면 되겠다고 생각을 하였다. import java.io.*; import java.util.*; class Main { publ..
[코딩테스트] 프로그래머스 - 스킬트리 프로그래머스의 스킬트리 문제를 풀어볼려고 한다. 문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 s..