본문 바로가기
반응형

전체 글1305

[BOJ] 백준 2448 별찍기 - 11 출처: https://www.acmicpc.net/problem/2448 Approach n이 주어졌을 때, 아래와 같은 별 모양을 형성하는 문제이다. 해당 문제는 다음과 같이 접근해보았다. 재귀적으로 아래의 각 삼각형 상단 좌표를 기준으로 해서 별모양을 형성 : (1) - (2) - (3) - [4] ※ Test Case 통과를 위해서는 아래사항을 주의. 1. null문자는 단 한개도 출력해서는 안된다. 일부 환경 (예: 비주얼 스튜디오)에서는 널 문자가 마치 공백처럼 출력되어 눈에 보이지 않지만, 널 문자와 공백은 엄연히 다르며, 채점 프로그램은 단 한 개의 널 문자라도 발견되면 무조건 오답으로 처리 공백은 무조건 공백 문자 ' ' 띄워쓰기를 이용해 출력. 2. 출력 예제를 드래그해보면 모든 줄은 같.. 2021. 2. 18.
[수학] 피보나치 수열 구현 (재귀, DP) 피보나치 수열(Fibonacci Numbers)이란? 1 → 1 → 2 → 3 → 5 → 8 → 13 → 21 → 34 → 55 → 89 → 144 → 233 점화식으로 표현하면 다음과 같다. 이를 구현하는 방법은 크게 다음과 같다. - 재귀 방식 (Recursion) - 동적 계획 (Dynamic) 재귀 방식(Recursion) Top-down 방식으로 f(0), f(1)과 같이 작은 부분의 값들이 여러번 호출된다. public class Main { public static void main(String[] args) { int n = 40; long start = System.currentTimeMillis(); System.out.println( fibonacci(n) ); long end = S.. 2021. 2. 18.
[BOJ] 백준 1003 피보나치 함수 출처: https://www.acmicpc.net/problem/1003 Input 3 0 1 3 Output 1 0 0 1 1 2 재귀를 이용하는 경우 시간 초과나기 때문에 반복문을 이용하여 구현 [수학] 피보나치 수열 구현 (재귀, DP) 피보나치 수열(Fibonacci Numbers)이란? 1 → 1 → 2 → 3 → 5 → 8 → 13 → 21 → 34 → 55 → 89 → 144 → 233 점화식으로 표현하면 다음과 같다. 이를 구현하는 방법은 크게 다.. zoosso.tistory.com [문제 풀이] (0호출, 1호출)을 분석해보면 N=0 일 때, (1, 0) / N=1 일 때, (0, 1)까지를 기본(base)항으로 둔다. 다음항부터 (1, 1) → (1, 2) → (2, 3) → (3, .. 2021. 2. 18.
VPN (Virtual Private Network) VPN (Virtual Private Network) 가상 사설망의 약자로서, 외부에 있는 컴퓨터라도 내부 네트워크에 접속해 있는 것처럼 이용합니다. 커피숍이나 공항에서 공용 Wi-Fi 네트워크를 사용하는 경우가 많습니다. 온라인 뱅킹, 검색 기록, 개인 메시지 등 대부분의 정보는 ISP가 추적하여 보관되며 자칫하면 사이버 범죄에 이용될 수 있습니다. 보안 DB의 경우에는 별도의 네트워크로 연결된 장비로만 접근 하는 부서도 존재 실제 회사 네트워크에서 외부 클라우드로 나가는 파일들도 모니터링 대상일 수 있습니다. 그렇기에 VPN은 퓨터와 인터넷, Wi-Fi 핫스팟 및 기타 네트워크를 연결하는 암호화된 터널을 만들어 사용자를 보호합니다. 기업에서도 온라인상의 개인 정보보호 및 전반적인 보안을 위해 VPN .. 2021. 2. 18.
[HackerRank] Java Stack 출처: www.hackerrank.com/challenges/java-stack/problem?h_r=next-challenge&h_v=zen&h_r=next-challenge&h_v=zen stack의 LIFO(Last In First Out) 특성을 이용해서 괄호쌍이 일치 여부를 판단하여 [true]/[false] 출력 : 열린 괄호 '[', '{', '(' 와 닫힌 괄호 ']', '}', ')' 가 적절한 위치에 있는지 확인 import java.util.*; class Solution{ public static void main(String []argh) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { String str = sc.ne.. 2021. 2. 18.
[HackerRank] Apple and Orange 출처: https://www.hackerrank.com/challenges/apple-and-orange/problem 음수는 왼쪽 / 양수는 오른쪽으로 이동 첫번째 사과 5 - 2 = 3 두번째 사과 5 + 2 = 7 세번째 사과 5 + 1 = 6 첫번째 오렌지 15 +5 = 20 두번째 오렌지 15 - 6 = 9 7~11 사이에 있는 사과 1개 / 오렌지 1개 import java.util.Scanner; public class Solution{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int s, t; int a, b; int apple, orange; s = sc.nextInt(); t = sc.ne.. 2021. 2. 18.
[HackerRank] Matrix Layer Rotation 출처: https://www.hackerrank.com/challenges/matrix-rotation-algo/problem Input 4 4 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output 3 4 8 12 2 11 10 16 1 7 6 15 5 9 13 14 Cycle의 개수는 m, n 중 작은 수의 2로 나누었을 때의 몫이다. ex) min (2 * 6) → 2 / 2 = 1 min (8 * 9) → 8 / 2 = 4 위와 같이 m, n 중 큰 수가 어떤 수든 상관없이 『min( m, n ) / 2』로 계산해서 cycle 개수를 도출할 수 있다. 실제 이차원 배열상에서 rotation을 시킬 수도 있지만 『ㅁ』 을 한 개의 『ㅡ』로 생각하여 rotation 처리.. 2021. 2. 18.
[HackerRank] Queen's Attack II 출처: https://www.hackerrank.com/challenges/queens-attack-2/problem Input 5 3 4 3 5 5 4 2 2 3 Output 10 체스의 여왕(Queen)이 움질 수 있는 칸 수를 출력하는 문제이다. 위에서 처럼 임의의 위치에 장애물이 설치되어 있으면 해당 방향에 방해물 다음 지점으로는 움직일 수 없다. 문제 Test Case 중 두가지 조건이 있기에 주먹구구 방식으로는 통과할 수 없다. 0 < n ≤ 1000 0 ≤ k ≤ 10^5 - n*n 크기 만큼의 배열 가질 수 없다. → 메모리 초과 - 여왕이 움직일 수 있는 칸을 일일이 확인할 수 없다. → timeout 발생 → 주먹구구식으로 하나하나 비교하지 않고, (key, value) 형식으로 구현 .. 2021. 2. 18.
[HackerRank] The Bomberman Game 출처: https://www.hackerrank.com/challenges/bomber-man/problem (r, c) = 격자 크기 / 경과 시간 n (6, 7) / n = 3 (n 초 후의 격자 상태를 출력하는 것) (폭탄 'O' / 아닌 지역은 '.') 위와 같이 초기에 임의의 위치에 폭탄이 설치되어 있다. 현재 시점에 설치되어 있는 폭탄은 3초뒤에 터진다. [1초 후] Bomberman은 아무런 행위를 하지 않는다. 이때는 '1초'의 시간이 흐른것 외에는 차이가 없다. [2초 후] Bomberman이 폭탄이 없었던 모든 영역에 새로운 폭탄을 설치한다. 이 시점에 설치된 폭탄은 지금으로부터 3초 뒤에 터진다. [3초 후] 3초가 지나면서 초기에 설치되어 있던 폭탄들이 터진다. 이때, 폭발범위는 상.. 2021. 2. 18.
[HackerRank] Strange Counter 출처: https://www.hackerrank.com/challenges/strange-code/problem 시간의 경과와 달리 특정 규칙에 따라 숫자를 세고 있다. [Counter Count]를 그대로 구현하는 주먹구구 방식은 시간을 만족하지 못한다. 각 Cycle의 시작시간과 끝시간은 다음과 같다. (1) 1~3 → 차이 3 (2) 4~9 → 차이 6 (3) 10~21 → 차이 12 → 차이는 진행되는 cycle이 2배씩 된다. → (해당 Cycle의) 시작 시간은 초기값 1부터 '차이'가 더해진 값이며 → (해당 Cycle의) 종료 시간은 시작시간에서 '차이'가 더해진 값이다. 이를 수식적으로 계산하면 보다 빠르게 계산할 수 있다. ※ Test Case 중에 t가 int 범위를 벗어나는 것이 있.. 2021. 2. 18.
반응형