반응형

Programming/Coding Test 16

[코드트리/문자열] 미는 횟수 (feat.Java)

https://www.codetree.ai/problems/number-of-pushes?utm_source=clipboard&utm_medium=text import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { // 문자열을 미는 함수 public static String push(String a){ String pushed = "" + a.charAt(a.length()-1); // a의 마지막 문자로 초기화 int idx = 0; // 문자열 캐릭터를 하나씩 돌며 idx 1부터 문자열 a의 끝까지 붙이고, 그 후 다시 idx를 0으로 만들어 남은 앞의 캐릭..

[Leetcode/Hashmap] 242. Anagram (feat.Java)

https://leetcode.com/problems/valid-anagram/ class Solution { public boolean isAnagram(String s, String t) { HashMap hm = new HashMap(); boolean answer = true; // s의 캐릭터를 hm에 담는다. // key에 없으면 1로 디폴트 세팅, 있으면 값에 +1 for(int i = 0; i < s.length(); i++){ if(hm.containsKey(s.charAt(i))){ System.out.print(hm.get(s.charAt(i))); hm.put(s.charAt(i), hm.get(s.charAt(i))+1); } else { hm.put(s.charAt(i), 1);..

[Leetcode/Hashmap] 217. Contains Duplicate (feat.Java)

https://leetcode.com/problems/contains-duplicate/description/ class Solution { public boolean containsDuplicate(int[] nums) { HashMap hm = new HashMap(); boolean answer = false; for(int i = 0; i < nums.length; i++){ if(hm.containsKey(nums[i])){ answer = true; break; } else { hm.put(nums[i], true); } } return answer; } } 해시맵을 알고리즘에 접목하면 이전의 데이터들을 저장해놨다가 바로 꺼내다 로직을 만들 수 있다는 장점이 있다. 루프를 돌며 이미 저장된 값..

코딩 인터뷰에 등장하는 Top 6 개념

Top 6 Coding Interview Concepts (Data Structures & Algorithms) Number 6 : Heaps - two variation : minimum heap, maximum heap - Find minimum, maximum value or top k value 문제들에서 많이 사용 Number 5 : Sliding Window - iterative through array n time - type of algorithm that you can memorize and apply to many different problems - keep track of two points, don't have to use nested loop Number 4 : Binary Se..

[종만북] 보글 게임 with Java

[ 문제 ] 5 X 5 크기의 알파벳 격자를 가지고 상하좌우/대각선으로 인접한 칸들의 글자들을 이어서 단어를 찾아내는 것. 한 글자가 두 번 이상 사용될수도 있음. 재귀함수가 무엇인지 이해할 수 있었던 문제. package jongman.bruteForce; public class Boggle { //@1. static int[] dx = { -1, -1, -1, 1, 1, 1, 0, 0 }; static int[] dy = {-1, 0, 1, -1, 0, 1, -1, 1 }; static char[][] board = { {'U', 'R', 'L', 'P', 'M'}, {'X', 'P', 'R', 'E', 'T'}, {'G', 'I', 'A', 'E', 'T'}, {'X', 'T', 'N', 'Z', ..

프로그래머스 레벨2 - 탑

문제 설명 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다른 탑으로 송신되지 않습니다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 탑이 왼쪽으로 동시에 레이저 신호를 발사합니다. 그러면, 탑은 다음과 같이 신호를 주고받습니다. 높이가 4인 다섯 번째 탑에서 발사한 신호는 높이가 7인 네 번째 탑이 수신하고, 높이가 7인 네 번째 탑의 신호는 높이가 9인 두 번째 탑이, 높이가 5인 세 번째 탑의 신호도 높이가 9인 두 번째 탑이 수신합니다. 높이가 9인 두 번째 탑과 높이가 6인 첫 번째 탑이 보낸 레이저 신호는 어떤 탑에서도 수신할 수 없습니다. 송신 탑..

프로그래머스 레벨2 - 멀쩡한 사각형 with Java

문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm × 1cm로 잘라 사용할 수 있는 만큼만 사용하기로 하였습니다. 가로의 길이 W와 세로의 길이 H가 주어질 때, 사용할 수 있는 정사각형의 개수를 구하는 solutio..

프로그래머스 레벨2 - 124 나라 with Java

문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법 124 나라 10진법 124 나라 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요. 제한사항 n은 500,000,000이하의 자연수 입니다. 입출력 예 n result 1 1 2 2 3 4 4 11 나의 코드 public class..

프로그래머스 레벨2 - 기능개발 with Java

문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자..

반응형