Basic/코딩테스트

    [자바 / Java] 프로그래머스 알고리즘 제출 설정 (런타임 에러)

    [자바 / Java] 프로그래머스 알고리즘 제출 설정 (런타임 에러)

    * 자바 코드 제출 방법 오류 코드(짝수와 홀수 예제) 1. class 명 class 짝수와 홀수 { public static String solution(int num) { String answer; if(num%2 == 0 ){ answer = "Even"; }else{ answer = "Odd"; } return answer; } } 2. 메소드 명 class Solution { public static String 짝수와 홀수(int num) { String answer; if(num%2 == 0 ){ answer = "Even"; }else{ answer = "Odd"; } return answer; } } 클래스 이름과, 메서드 이름을 'Solution', 'solution()'이 아닌 다른 ..

    백준 16922번 자바(JAVA) - 로마 숫자 만들기

    백준 16922번 자바(JAVA) - 로마 숫자 만들기

    문제 로마 숫자에서는 수를 나타내기 위해서 I, V, X, L을 사용한다. 각 문자는 1, 5, 10, 50을 의미하고, 이 문제에서 다른 문자는 사용하지 않는다. 하나 또는 그 이상의 문자를 이용해서 수를 나타낼 수 있다. 문자열이 나타내는 값은, 각 문자가 의미하는 수를 모두 합한 값이다. 예를 들어, XXXV는 35, IXI는 12를 의미한다. 실제 로마 숫자에서는 문자의 순서가 중요하지만, 이 문제에서는 순서는 신경 쓰지 않는다. 예를 들어, 실제 로마 숫자에서 IX는 9를 의미하지만, 이 문제에서는 11을 의미한다. 로마 숫자를 N개 사용해서 만들 수 있는 서로 다른 수의 개수를 구해보자. 입력 첫째 줄에 사용할 수 있는 문자의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 로마 ..

    Big O Notation 1 (대문자 O 표기법)

    Big O Notation 1 (대문자 O 표기법)

    Big O notation (대문자 O 표기법) Big - O 케이스 O(1): Constant - 데이터의 수(N)와 관계없이 항상 같은 시간에 계산을 끝내는 알고리즘. ex) 연결 리스트의 맨 앞에 값 추가, Array의 Push(), Pop() 등.. O(log N): Logarthmic - N의 크기가 제곱이 되면 시간이 배가 된다. 문제를 해결하는데 필요한 단계의 수가 연산마다 점차 줄어드는 알고리즘. ex) 이진 탐색, 재귀가 순기능으로 이뤄지는 경우 O(N): Linear - N의 크기가 증가하는만큼 비례하여 처리시간이 증가하는 알고리즘. ex) 선형 탐색(연결 리스트에서의 탐색 등..), Stack, Queue 등에서의 access. O(N log N): Linear-Logarithmic ..

    [실버 5, 1] 백준 16173, 16174번 자바(JAVA) - 점프왕 쩰리 (Small, Large)

    [실버 5, 1] 백준 16173, 16174번 자바(JAVA) - 점프왕 쩰리 (Small, Large)

    문제 설명 문제 ‘쩰리’는 점프하는 것을 좋아하는 젤리다. 단순히 점프하는 것에 지루함을 느낀 ‘쩰리’는 새로운 점프 게임을 해보고 싶어 한다. 새로운 점프 게임의 조건은 다음과 같다. ‘쩰리’는 가로와 세로의 칸 수가 같은 정사각형의 구역 내부에서만 움직일 수 있다. ‘쩰리’가 정사각형 구역의 외부로 나가는 경우엔 바닥으로 떨어져 즉시 게임에서 패배하게 된다. ‘쩰리’의 출발점은 항상 정사각형의 가장 왼쪽, 가장 위의 칸이다. 다른 출발점에서는 출발하지 않는다. ‘쩰리’가 이동 가능한 방향은 오른쪽과 아래 뿐이다. 위쪽과 왼쪽으로는 이동할 수 없다. ‘쩰리’가 가장 오른쪽, 가장 아래 칸에 도달하는 순간, 그 즉시 ‘쩰리’의 승리로 게임은 종료된다. ‘쩰리’가 한 번에 이동할 수 있는 칸의 수는, 현재..

    [실버 4] 백준 5568번 자바(JAVA) - 카드 놓기

    [실버 4] 백준 5568번 자바(JAVA) - 카드 놓기

    문제 상근이는 카드 n(4 ≤ n ≤ 10) 장을 바닥에 나란히 놓고 놀고 있다. 각 카드에는 1 이상 99 이하의 정수가 적혀 있다. 상근이는 이 카드 중에서 k(2 ≤ k ≤ 4) 장을 선택하고, 가로로 나란히 정수를 만들기로 했다. 상근이가 만들 수 있는 정수는 모두 몇 가지일까? 예를 들어, 카드가 5장 있고, 카드에 쓰여 있는 수가 1, 2, 3, 13, 21라고 하자. 여기서 3장을 선택해서 정수를 만들려고 한다. 2, 1, 13을 순서대로 나열하면 정수 2113을 만들 수 있다. 또, 21, 1, 3을 순서대로 나열하면 2113을 만들 수 있다. 이렇게 한 정수를 만드는 조합이 여러 가지 일 수 있다. n장의 카드에 적힌 숫자가 주어졌을 때, 그 중에서 k개를 선택해서 만들 수 있는 정수의 ..

    [브론즈 1] 백준 1834번 자바(JAVA) - 나머지와 몫이 같은 수

    문제 N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N=3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다. 입력 첫째 줄에 2,000,000 이하의 자연수 N이 주어진다. 출력 첫 줄에 구하고자 하는 수를 출력한다. 첫번째 시도 1. 먼저 시간제한을 봤다. 2. while문으로 하나씩 증가시키면서 값을 찾는 무식한 방법이 가능할까? 3. 시간 제한상 불가능할 거라 생각했다. 두번째 시도 1. 규칙을 찾아보자 N = 1 -> x N = 2 -> 3 N = 3 -> 4, 8 N = 4 -> 5, 10, 15 2. 나머지와 몫이 모두 같은 자연수의 갯수는 N-1개가 나온다. 3. 나머지와 몫이 모두 같은 자연수를 찾..

    [브론즈 3] 백준 1547번 자바(JAVA) - 공

    문제 세준이는 컵 3개를 탁자 위에 일렬로 엎어놓았다. 컵의 번호는 맨 왼쪽 컵부터 순서대로 1번, 2번 3번이고, 세준이는 이 컵을 이용해서 게임을 하려고 한다. 먼저 1번 컵의 아래에 공을 하나 넣는다. 세준이는 두 컵을 고른 다음, 그 위치를 맞바꾸려고 한다. 예를 들어, 고른 컵이 1번과 2번이라면, 1번 컵이 있던 위치에 2번 컵을 이동시키고, 동시에 2번 컵이 있던 위치에 1번 컵을 이동시켜야 한다. 이때 공은 움직이지 않기 때문에, 공의 위치는 맨 처음 1번 컵이 있던 위치와 같다. 세준이는 컵의 위치를 총 M번 바꿀 것이며, 컵의 위치를 바꾼 방법이 입력으로 주어진다. 위치를 M번 바꾼 이후에 공이 들어있는 컵의 번호를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 컵의 위치를 바꾼 횟수 ..

    [브론즈 1] 백준 3054번 자바(JAVA) - 피터팬 프레임

    문제 "피터팬 프레임"은 단어를 다이아몬드 형태로 장식하는 것이다. 알파벳 X를 피터팬 프레임으로 장식하면 다음과 같다. ..#.. .#.#. #.X.# .#.#. ..#.. "웬디 프레임"은 피터팬 프레임과 유사하지만, 다이아몬드를 '*'로 만드는 것이다. 알파벳 X를 웬디 프레임으로 장식하면 다음과 같다. ..*.. .*.*. *.X.* .*.*. ..*.. 단어가 주어졌을 때, 3의 배수 위치(세 번째, 여섯 번째, 아홉번째, ...)에 있는 알파벳은 웬디 프레임으로, 나머지 알파벳은 피터팬 프레임으로 장식하는 프로그램을 작성하시오. 웬디 프레임과 피터팬 프레임이 겹칠 경우에는, 웬디 프레임이 위에 있다. 입력 첫째 줄에 알파벳 대문자로 이루어진 최대 15글자 단어가 주어진다. 출력 다섯 줄에 걸쳐..