problem solving/algorithm22 [알고리즘] 재귀함수(Recursive function) 정리 & 문제 풀이(Python) 재귀함수 : 함수 안에서 자신의 함수를 다시 호출하는 방식 - 재귀, 즉 자기호출은 어떤 문제를 해결하는 과정에서 자신과 똑같지만 크기가 다른 문제를 발견하고 이들의 관계를 파악함으로써 문제 해결에 접근하는 방식이다. 재귀함수의 장점 - 반복문을 대신해서 재귀함수로 사용하게 되면 보다 간결한 코드 작성이 가능해진다. 재귀함수의 단점 - 연산이 느리다.(많은 연산을 필요로 한다는 얘기) - 재귀함수의 단점으로 인해 현재 실무에서는 거의 사용하지 않는다고 함. - 재귀함수 단점 보안으로 동적프로그래밍 사용 def recursive(): print("재귀함수") recursive() recursive() # 함수 호출 재귀함수를 사용할 때 가장 중요하게 봐야하는 것은 "탈출조건"이다. 위 코드와 같이 탈출조건.. 2022. 1. 13. [Java Algorithm] 1-3 문장 속 단어( for each문, split(), indexOf(), substring()) * 문제 설명 문장 속의 각 단어는 공백으로 구분되고 한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 문제 (출력: 첫 줄에 가장 긴 단어를 출력하고 가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한 단어를 답으로 함.) 예시 입력 1 it is time to study 예시 출력 1 study * 소스코드1 풀기 전 생각) 공백을 기준으로 나누면 되지 않을까? => split() 먼가 생각으로는 처음 나온 공백을 기준으로 앞 글자들을 묶고 공백이 나올 때마다 반복한 다음 그 묶여진 단어들을 배열에 넣어서 비교하면 되지 않을까? 싶음 => String[] arr = str.split(" "); 1. 공백으로 구분된 단어들을 입력받고 2. 해당 단어를 " "으로 spli.. 2021. 8. 16. [Java Algorithm] 1-2 대소문자 변환(대문자는 소문자로, 소문자는 대문자로) // 대문자와 소문자가 같이 존재하는 문자열을 입력받아 // 대문자는 소문자로, 소문자는 대문자로 변환하는 프로그램 // 첫 줄에 문자열이 입력된다. 문자열 길이 100 안 넘음 import java.util.*; public class Practice_02 { public String solution(String str) { String answer = ""; for(char x : str.toCharArray()) { if(Character.isLowerCase(x)) answer+=Character.toUpperCase(x); else answer+=Character.toLowerCase(x); } return answer; } public static void main(String[] args) .. 2021. 8. 15. [Java Algorithm] 1-1 문자 찾기(자바 한 문자만 입력 받기, 대소문자 변환) * 문제 설명 한 개의 문자열을 입력받고, 특정 문자를 입력받은 후 해당 특정문자가 대소문자에 관계없이 문자열에 몇 개 존재하는지 알아내어 출력해주는 문제 * 소스코드 package algorithm; import java.util.Scanner; public class Main { public int solution(String str, char t) { int answer = 0; str = str.toUpperCase(); //string이 대문자로 된다.! t = Character.toUpperCase(t); // t는 문자이기 때문에 Character라는 클래스에서 클래스에 있는 메서드 사용한다. for(int i = 0; i < str.length(); i++) { if(str.charAt(i.. 2021. 8. 14. 이전 1 2 3 다음