분류 전체보기 333

한 번만 등장한 문자_programmers_lev00

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다. *0 < s의 길이 < 1,000 *s는 소문자로만 이루어져 있습니다. 간단하게 split 메서드를 활용하여 String 배열에 담은 후, 바로 Arrays.sort를 사용하여 순차적으로 return이 되도록 하였습니다. 그 후 StringBuilder를 통해서 최대한 가비지가 생기지 않도록 구현하였고, 만약 같은 문자열의 index가 동일하다면 1개만 있는 문자열이기때문에 문자열의 인덱스 번호를 비교하여 answer에 return 하도록 코딩하였습니다. import java.uti..

가까운 수_programmers_lev00

정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요. 1 ≤ array의 길이 ≤ 100 1 ≤ array의 원소 ≤ 100 1 ≤ n ≤ 100 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다. 우선 배열을 비교할 때 필수로 Arrays.sort를 진행한 뒤, min을 999로 초기화했습니다. 들어오는 n의 값을 하나씩 돌면서 만약에 절댓값( n-인덱스 값)을 비교하였을 때 999보다 작다면, 해당 값을 min에 초기화를 계속해주면서 모든 인덱스를 다 돌 때까지 (new int [] { 3, 10, 28 }, 20)); // 답: 28 // 20-3 = 7 / 20-10..

k의 개수_programmers_lev00

1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요. 입출력 예) 10부터 50까지 5는 15, 25, 35, 45, 50 총 5번 등장합니다. 따라서 5를 return 합니다. 우선, int형인 주어진 숫자들을 String.valueOf를 통해서 String 배열에 담았습니다. 그 후, split 메서드를 이용해서 문자열 하나씩 배열에 담은 후, 같은 것이 contains 되어있으면 answer를 증가시키는 코드를 짜보았습니다. class Solution { public int solution(int i, int j, int ..

2차원으로 만들기_programmers_lev002

정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요. num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다. 처음에 이중배열을 풀때 초기화 하는 곳에서 [num_list.length/n] [n] 로 지정을 해주었습니다. 행과 열만 잘 생각 한다면, 첫번째 for 문은 행을 구하고, 두번째 for 문은 열을 구할때 열의 길이를 행의 길이보다 작을때로 지정을 하였씁니다. num_list를 어떻..

A로 B 만들기_programmers_lev00

문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요. 처음에 문제를 풀었을때는 단순히 문자의 배열만 바꿔서 비교하였지만, 사실상, before에 주어지는 문자열과 after에 주어지는 문자열 하나하나가 모두 동일하다면 같은 문자를 만들 수 있다는 것을 생각하였고, 각각의 문자열을 배열에 저장 후, sort 해준 뒤 String 배열이 아닌 String 문자로 비교 한 값을 return 하도록 코딩하였습니다. import java.util.Arrays; class Solution { public int solution(String before, String af..

TCP 와 UDP 차이점

안녕하세요 jju_developer 입니다. 오늘은 Java TCP 와 UDP 차이점에 대해 간단하게 소개하는 시간을 갖겠습니다. 전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층입니다. ✔Java TCP란 무엇일까요? (Transmission Control Protocol)  연결 지향적 프로토콜 -> 시간 소요  통신 선로 고정 -> 전송 속도 느려질 수 있음  데이터를 정확하고 안정적으로 전달 TCP 네트워킹을 위해 java.net.ServerSocket, java.net.Socket 클래스를 제공하고 있습니다. 마치 전화 통화 하는 것과 비슷합니다. ✔Java UDP란 무엇일까요?(User Datagram Protocol)  비연결 지향적 프로토..

모스 부호 (1)_programmers_lev00

모스부호 (1) 머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요. 모스부호는 다음과 같습니다. morse = { '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f', '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l', '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r', '...':'s','-':'t','..-':'u','...

중복된 문자 제거_programmers_lev00

문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return 하도록 solution 함수를 완성해주세요. *my_string은 대문자, 소문자, 공백으로 구성되어 있습니다. *대문자와 소문자를 구분합니다. *공백(" ")도 하나의 문자로 구분합니다. *중복된 문자 중 가장 앞에 있는 문자를 남깁니다. 처음에는 중복을 허용하지 않는 Set을 쓰려고 하다가 char [] 배열에 담아서 contains 메서드를 활용하였습니다. char 배열에 담을 때 확인해서 정답을 담을 answer가 String이기 때문에 String.valueOf를 활용하여 하나씩 확인해 주었습니다. 동일하게 indexOf도 활용해보면 좋을 것 같아서 아래 다른 ..

합성수 찾기_programmers_lev00

약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요. 우선 해당 문제를 풀 때 ✔1 : 소수도 합성수도 아닌 1 ✔소수: 약수의 개수가 2개인 자연수, 1과 자기 자신만을 약수로 갖는 자연수 ✔합성수: 약수의 개수가 3개 이상인 자연수 (1보다 큰 자연수 중 소수가 아닌 자연수) ※약수가 1과 자기 자신만 있는 자연수를 소수라고 하는 점 이때 n으로 들어온 정수의 약수 개수를 구하는 메소드를 하나 구하고, 약수의 개수가 2가 아니거나, n이 1이 아니면 answer +1 왜냐하면 1은 필요 없고 약수가 2개가 아닌 경우는 약수가 3개이기 때문입니다. class Solution { public..

369게임_programmers_lev00

머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요. 처음에 int형을 String 배열에 담을 때 하나하나 쪼개어서 나눌때 " " 을 더한 후 split 메서드를 사용해야 하는지를 몰랏기 떄문에 배열을 두개나 더 선언했었는데, 이렇게 또 하나 배웠습니다. class Solution { public int solution(int order) { int answer = 0; String[] strArr = ("" + order).split..