프로그래머스) (자바) 직사각형 별 찍기
·
알고리즘 탐구
직사각형 별 찍기 직사각형 별 찍기 - 프로그래머스 - 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr for문에 대한 이해가 있다면 매우 쉽게 풀 수 있는 문제이다. 예제에서 가로가 5, 세로가 3이다. "*" 이런 느낌으로 작성을 시작해 보자. 가로로 찍히는 별 5개가 3번 반복된다고 생각해 볼 수 있다. 1. "*" X5 2. "*****" X3 result => "*****" "*****" "*****" 1번의 경우부터 작성해 본다. for(int j=0; j
프로그래머스) (자바)핸드폰 번호 가리기
·
알고리즘 탐구
핸드폰 번호 가리기 핸드폰 번호 가리기 - 프로그래머스 - 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다른 방법으로 더 쉽게 풀 수 있지만 정규식을 사용하여 풀어보자 정규 표현식 String pattern = "^[0-9]*$"; 정규 표현식으로 0~9까지의 숫자를 나타내는 방식이다. 정규 표현식으로 특정 문자를 "*"로 바꿔볼 것이다. 이 부분이 핵심이다. for (int i = 0; i4) { for (int i = 0; i
백준) (자바)1935 후위 표기식 2
·
알고리즘 탐구
후위 표기식 2 후위 표기식2 - 백준 - 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 후위표기법 (postfix notation) 역폴란드 표기법(RPN, reverse Polish notation) 또는 후위 표기법(후치 표기법)(postfix notation)은 연산자를 연산 대상의 뒤에 쓰는 연산 표기법이다. 수식을 계산할 때 특별한 변환이 필요 없이, 수식을 앞에서부터 읽어 나가면서 스택에 저장하면 된다는 장점이 있다. 중위표기법에서는 연산자의 우선순위가 모호해서 괄호가 필요한 경우가 ..
알고리즘) 유클리드 호제법
·
알고리즘 탐구
유클리드 호제법 두 수의 최대 공약수를 구하는 알고리즘 먼저 MOD 연산에 대하여 이해하고 있어야 한다. 나머지 연산(modulo) 컴퓨터 프로그래밍 언어에서는 나머지 연산을 나타내는 기호로 사용한다. ex) mod 연산 14 mod 3 = 2 14 % 3 = 2 10 mod 5 = 0 10 % 5 = 0 2 mod 7 = 2 2 % 7 = 2 MOD 연산을 활용한 유클리드 호제법 1. 큰 수를 작은 수로 나누는 MOD연산 수행 2. 이전 단계의 작은 수와 MOD연산 결과 나온 나머지로 MOD연산 수행 3. 앞단계를 반복하며 나머지가 0이 될 때의 작은 수가 최대 공약수 최대공약수 (Greatest Common Divisor, GCD) 유클리드 호제법을 적용하여 최대공약수를 구해보자 유클리드 호제법 구현..
알고리즘) 동적 계획법
·
알고리즘 탐구
동적계획 법 복잡한 문제를 여러 개의 간단한 문제로 분리하여 부분의 문제들을 해결함으로써 복잡한 문제의 답을 구하는 방법이다. 동적계획법 구현 1. 동적계획법이 적용 가능한지 파악 2. 점화식 세우기 ex) 피보나치수열의 점화식 fibo[i] = fibo[i-1] + fibo[i-2] 3. 메모이제이션 기법 부분 문제를 풀고 이를 DP테이블에 저장한 후, 같은 문제가 나왔을 때 재계산하지 않고 DP테이블에서 값을 불러와서 이용한다. 연산과 탐색이 줄어들어 시간적으로 큰 효율을 얻을 수 있다. 방식 1. 탑-다운 구현 방식 주로 재귀함수 형태로 코드를 구현 코드의 가독성이 좋고, 이해하기가 좋다. 피보나치수열 탑-다운 방식 구현 import java.util.Scanner; class Main{ stati..
알고리즘) 피보나치 수
·
알고리즘 탐구
피보나치 수 피보나치 수는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두항의 합인 수열 처음 여섯 항은 각각 1, 1, 2, 3, 5, 8이다. 편의상 0번째 항을 0으로 두기도 한다. 내용 출처 - 위키백과 - 함수를 구현해 보면 자바 public static long getFiboNum(long n) { if(n == 1 || n == 2) return 1L; return getFiboNum(n-1) + getFiboNum(n-2); } 파이썬 def fibo(n): if n in [1, 2]: return 1 return fibo(n-1) + fibo(n-2) 수행문이 고작 2~3줄이다. 매우 간단하다. 하지만... fibo(1) : 1 fibo(2) : 1 fibo(3) : fibo(..
오지랖 토끼
'알고리즘 탐구' 카테고리의 글 목록 (2 Page)