분류 전체보기 33

#01. [프로그래머스]신규 아이디 추천 (2단계 특수문자 걸러내기만 알면 끝!)

카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. ==> 다음의 7단계를 거쳐 추천해주려고 합니다. 1단계 new_id의 모든 대문자를 대응되는..

#15. 5주차 과제 2 [Chap06_6-4 ~ 6-5]

6-4. (SelectionSort) _ 단순 선택 정렬 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 package practice; import java.util.Scanner; public class SelectionSort_6_4 { static void swap(int[]a, int idx1, int idx2) { int t = a[idx1]; a[idx1] = a[idx2]; a[idx2] = t; } static void selectionSort(int[]a, int n) { for (int i..

#14. 5주차 과제 1 [Chap06_6-1 ~ 6-3]

스터디를 중도 하차 했다. 국비과정을 수료하며 각양각색의 언어를 1주일 단위로 소화하고 있는 내게 DoIt이 제시하는 자료구조 알고리즘까지 소화할 자신이 없었기 때문이다. 중도하차라니... 첫째 스터디원 분들께 무척 죄송하고, 둘째 스스로의 역량을 잘못판단했다는 씁쓸함이 느껴진다. 물론 기본적인 알고리즘에 대한 이해를 쌓는 일은 중요하다. 다만, 개발자 입문을 준비하는 내게는 현업에서 쓰일 Spring + Front단 언어들(css, js 등)의 숙련도를 올리는 것이 더 필요한 일이라고 결정했다. 하지만 이왕 펼친 책이니 천천히라도 하던 것처럼 책에 있는 코드 업로드를 할 예정이다. 6챕터는 '정렬'에 관한 내용이다. 6-1. (BubbleSort1) : 버블정렬이란, 이웃한 두 요소의 대소관계를 비교하..

#12. 4주차 과제 2 [Chap05_5-2 ~ 5-6]

5-2. (EuclidGCD) _ 유클리드 호제법을 이용한 최대공약수 구하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 package practice; import java.util.Scanner; /* * 유클리드 호제법 * * 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘의 하나. * * 호제법이란 말은 * 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘. * * 2개의 자연수(또는 정식) a, b에 대해서 * a를 b로 나눈 나머지를 c라 하면(단, a>b), * a와 b의 최대공약수는 b와 c의 최대..

#11. 4주차 과제 1 [Chap05_5-1]

5-1. (Factorial) _ 재귀호출을 이용한 팩토리얼 구하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package practice; import java.util.Scanner; public class Factorial_5_1 { static int factorial(int n) { //System.out.println("팩토리얼진입!"); // 몇번 호출하는지 보려고 작성함;; if(n > 0) return n*factorial(n-1); else return 1; } public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.p..

#10. 3주차 과제 3 [Chap04_4C-1]

4C-1. (LastNElements) _ 마지막 N개만 저장하는 순환배열만들기. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 package practice; import java.util.Scanner; /* * 원하는 개수만큼 값을 입력 받아 * 요솟수가 N인 배열에 마지막 N개를 저장. * * 데이터를 계속 입력할 수는 있지만 저장은 10개만 한다. * 11번째 값이 입력되면 기존 0번방에 덮어쓰게 됨. * * 10개만 쓸거다! 라고 하면 더 간단하게 할 수 있겠지만 * 아래와 같이 코드를 쓴다면 재사용성이 더 높아질 것. *..

#8. 3주차 과제 1 [Chap04_4-1 ~ 4-2]

Stack 과 Que 의 자료구조를 공부하는데에 있어 직접 만들어 보는 것 만큼 좋은 경험은 없을것이다. 책에 가끔 "이렇게까지 하라고...?" 싶은 코드가 있는데 이번 실습 타이핑은, 타이핑 하면서도 흥미진진했다.!! 4-1. (IntStack) + [B]+[C]+[D]+[E] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 8..