본문 바로가기

전체 글

(201)
[JAVA][Level1]PROGRAMMERS 숫자 짝꿍 숫자 짝꿍 문제 설명 두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다. 예를 들어, X = 3403이고 Y = 13203이라면, X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330입니다. 다른 예시로 X = 5525이고 Y = 1255이면 X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 2, 5, 5로 만들 수 있는 가장 큰 정수인 552입니다(X에는 5가 3개, ..
[JAVA][Level1]PROGRAMMERS 옹알이 (2) 옹알이 (2) 문제 설명 머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 30 문자열은 알파벳 소문자로만 이루어져 있습니다. 입출력 예 babbling result ["aya", "yee", "u", "maa"] 1 ["ayaye", "uuu", "yeye", "yemawoo"..
[JAVA][Level1]PROGRAMMERS 기사단원의 무기 기사단원의 무기 문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단원은 무기점에서 ..
[프로그래밍 기초2] Java알고리즘 4일차 Java알고리즘 문제풀이 오늘은 기존에 풀어본 문제들을 리팩토링을 통해서 코드를 정리해 보고 다시 풀어보는 시간을 가진 후 새로운 문제를 풀어보았다. 확실히 기존을 풀었던 문제들의 코드들을 확인 해보니 효율적으로 사용하지 못 한 부분들이 있고, 굳이 안 해도 되는 방식으로 풀어본 부분들을 수정해 보면서 사용되는 함수들에 따라 달라지는 점도 알 수 있었다. 오늘은 완전탐색 문제들이 많이 있었는데 경우의 수를 구하더라도 각 문제 마다 다양하게 찾아야 하고 어떤 방법을 사용하는가에 따라 속도도 천차만별하게 차이가 났다. 특히나 수학적으로 접근하였을 때 엄청 간단하게 풀리는 문제들이 있어 알고리즘을 하기 위해서 수학공부를 다시 해야 하나 싶다. 크게는 좌우되지 않지만 일반적인 코딩을 할 때도 수학적인 사고가 도..
[JAVA][Level1]PROGRAMMERS 문자열 내 마음대로 정렬하기 문자열 내 마음대로 정렬하기 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한사항 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 입출력 예 strings n re..
[JAVA][Level1]PROGRAMMERS 숫자 문자열과 영단어 숫자 문자열과 영단어 문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 숫자 영단어 0 zero 1 one 2 two 3 three 4 four 5 f..
[프로그래밍 기초2] Java알고리즘 3일차 Java알고리즘 문제풀이 알고리즘을 이제 기본적인 부분을 넘어 뒷부분으로 가니 확실히 생각해야 되는 부분들이 많았고 전주에는 문제를 푸는 것에 중점을 두었다면 이번주부터는 좀 더 학습에 중점으로 두고 문제를 풀었다. 알고리즘 풀이를 페어로 하여 서로 푼 문제의 코드 리뷰를 진행하면서 서로가 안 쓰는 함수나 방식들에 대해 배우면서 의견을 나눌 수 있었고 놓쳤던 점과 부족했던 점들을 배울 수 있었다. 문제 풀이 후 상대를 네비게이터 하기 위해 주석으로 문제 풀이의 흐름을 설명하여 문제 풀이를 유도하면서도 전체를 설명하는 게 아닌 요점만 잡아서 문제를 풀 수 있도록 하는 게 생각보다 많이 어려웠고 페어의 주석만 보고 이해하면서 푸는데도 어려웠지만 혼자서 푸는 것보다 많은 점들을 배우고 생각할 수 있어 도움이 ..
[Weekly I Learned]8월 3주차 자바문법에 대해서 처음부터 다시 한번 확인해보는 주였다. 자바문법 강의는 그래도 많이 들어본 경험이 있어 초반 부분에서는 막힘 없이 지나가면서 아는 내용도 다시 한번 체크를 해보는 과정을 가졌다. 클래스, 상속, 인터페이스, 접근 제어자 등의 내용들은 조금은 알더라도 자바를 하는 데 있어 또 스프링을 준비에 앞서 중요한 내용들로 알고 있었고 매니저님들도 강조를 해주어서 익숙해질 수 있도록 보고 또 봐야겠다. 문법의 뒷 부분들에서는 분명히 본 내용들인데 생각이 잘 안나는 부분들이 많았다. 예외처리, 제네릭은 가볍게는 알고 있지만 활용 부분에 있어서 부족한 점들이 있어 정리를 하면서 익혀야겠다. 스레드는 완전히 모르는 부분들이 많아 새로 정의 부분도 정리를 해두었지만 다른 내용들을 하면서도 거의 본 적은 없..