재귀 함수 문제입니다. 핵심 최댓값과 최솟값을 출력해야 하는데, 여러 가지 방법이 있겠지만 List를 사용하면 쉽게 출력할 수 있다. 정답 코드 import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { static int n; static char[] arr; static boolean[] check; static int[] result; static List list; public static void main(String[] args) { Scanner sc= new Scanner(System.in); n =sc.nextInt(); arr = new char[n]; for (int i=..
개발일기 (22.10.22) 학교 내에서 개최한 SW 대회에서 입상을 하였습니다. 개발을 시작하고 처음 도전한 대회라서 부족한 부분도 많았지만, 팀원들과 함께 포기하지 않고 완성시켜서 좋은 결과를 얻은 것 같습니다. 아쉬운 점이 있다면 시간이 너무 부족했던 것 같습니다. 여러 가지 기능을 추가하고 싶었는데, 배포도 처음 하고 프런트와 연결하는 과정도 쉽지 않았습니다. 그래도 배포도 경험해보고 여러가지 모르는 부분을 많이 알게 되고 한 단계 더 성장한 것 같아 기분이 좋습니다. https://github.com/kimtaesoo99/SW_Project GitHub - kimtaesoo99/SW_Project Contribute to kimtaesoo99/SW_Project development by cre..
오늘은 이진 탐색에 대해 정리해보려 한다. 영어로는 Binary Search라고 한다. 이진 탐색은 정렬되어 있는 숫자들 중에서 특정 숫자를 찾는다. -값들 중에 절반을 기준으로 원하는 값을 찾는다. -절반을 나눈 값을 기준으로 원하는 값이 있는 쪽에서 다시 절반을 나눈다. 즉 이진 탐색은 숫자를 절반씩 지워나가면서 찾는다. 따라서 시간 복잡도는 O(log n)이 된다. 여기서 의문점이 들 수 있다. 정렬해야 하면 O(log n)이 아니라 결국 O(n log n) 아닌가요? -> yes 따라서 이미 배열이 정렬되어 있다면 Binary Search가 효율적이다. 또는 숫자 찾기를 엄청 많이 해야 하는 경우에는 오히려 정렬을 한 뒤에 Binary Search를 하는 것이 좋다. 이제 이진 탐색을 구현해보자...
우선 함수에 대해 알아보자 함수란 값을 입력받아 특정 연산을 수행하여 결과를 반환하는 것이다. 다음은 재귀 함수에 대해 알아보자 자기 자신을 부르는 함수 대표적인 예시는 팩토리얼이다. import java.util.Scanner; public class Main2 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n =sc.nextInt(); System.out.println(getFactorial(n)); } public static int getFactorial(int n){ if (n==0)return 1; else return n*factory(n-1); } } 위 코드를 보면 계속해서 자기 자신을 ..
3주 차에서 다룰 내용은 다음과 같다. 1. Network OSI 7 계층 TCP 3 way handshake&4 way handshake TCP/IP 흐름 제어&혼잡 제어 UDP 2. Java Error&Exception Stream API Record Network OSI 7 계층 OSI 7 계층이란? OSI계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 7 계층은 왜 나눌까? 통신이 일어나는 과정을 단계별로 알 수 있고, 특정한 곳에 이상이 생기면 그 단계만 수정할 수 있기 때문이다. 1. 물리 계층(Physical): 단지 데이터 전기적인 신호로 변환해서 주고받는 기능을 진행하는 공간 즉, 데이터를 전송하는 역할만 진행한다. 2. 데이터 링크 계층(Data Link): 물리..
https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심 2개의 배열의 값을 2진수로 바꾸어, 각 배열의 값이 둘 중 1개라도 1이면 새로운 배열에 # 아니면 공백을 추가해준다. 정답 코드, 처음 풀이 public class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; for (int i =0;i
개발일기 (22.10.13) 오늘 처음으로 개발일기를 쓰려고 한다. 사실 이전부터 개발일기를 쓰고 싶었으나, 여러 가지 핑계를 대면서 미루었던 것 같다. 개발일기를 써야겠다는 생각이 든 이유는 오늘 있었던 학교 취업설명회를 듣고 나서이다. 나는 스스로 개발자라는 꿈을 늦게 가지게 되었고, 공부도 늦게 시작했다고 생각했다. 그래서 남들에 비해 뒤처진다는 조바심이 있었고, 불안한 마음도 있었다. 오늘 있었던 취업 설명회 덕분에 이러한 안 좋은 마인드가 바뀌게 되었다. 취업설명회를 진행하신 분은 우리 학교를 졸업한 선배님이셨다. 설명회에서 코딩 테스트, 포트폴리오, 면접에 대해 자세히 설명해주셨다. 취업설명회는 나에게 있어서 매우 큰 의미가 있었다. 우선 개발자라는 꿈이 더욱 명확해졌고, 앞으로의 공부 방향성..
https://school.programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 문자열 내 마음대로 정렬하기 문제 링크입니다. 핵심 이 문제에서 핵심은 정렬을 하는데, 문자열에서 원하는 index의 문자를 비교하여 정렬해야 한다. 정답 코드 import java.util.*; class Solution { public String[] solution(String[] strings, int n) { String[] answer = {}; List list = new..
https://www.acmicpc.net/problem/2204 2204번: 도비의 난독증 테스트 꿍은 도비에게 영어단어들을 제시한 후 어떤 단어가 대소문자를 구분하지 않고 사전순으로 가장 앞서는지 맞추면 양말을 주어 자유를 얻게해준다고 하였다. 하지만 인성이 좋지 않은 꿍은 사실 www.acmicpc.net 2204번 도비의 난독증 테스트 문제 링크입니다. 핵심 HashMap을 사용하여 기존의 문자열을 저장해주고, 전부 소문자로 바꾼다. 정답 코드 import java.util.Arrays; import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Scann..
재귀 함수 문제입니다. 핵심 숫자가 작아지는 형태로 나타나야 한다. 재귀 함수를 만들 때, 매개변수로 값의 합과 인덱스 위치를 나타내는 값을 사용한다. 정답 코드 import java.util.Scanner; public class Main { static int[] result; static int n; static int count; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); result = new int[n]; division(0,0); System.out.println(count); } //현재까지 구한 합이 mysum //index번째 숫자를 결정할 차례 result[..