Algorithm

    [프로그래머스] Lv.0 : 2의 영역

    https://school.programmers.co.kr/learn/courses/30/lessons/181894 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 💭 나의 생각 주어진 배열 안에서 2가 모두 포함된 부분 배열을 return 하는 문제이다. 나는 주어진 배열에서 숫자 "2"를 찾고, "2"를 발견할 때마다 해당 "2"를 포함한 그 이후의 연속적인 숫자들을 ArrayList인 list에 추가해 주었다. 💻 나의 코드 import java.util.ArrayList; class Solution { public int[] solution(i..

    [프로그래머스] Lv.0 : 배열 만들기 2

    https://school.programmers.co.kr/learn/courses/30/lessons/181921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 💭 나의 생각 "0"과 "5"로만 이루어진 모든 정수를 구하면 되기 때문에 정규표현식을 사용하여 풀어보았다. 💻 나의 코드 import java.util.*; class Solution { public int[] solution(int l, int r) { ArrayList numbers = new ArrayList(); for (int i = l; i

    [Algorithm] 배열(Array)과 리스트(List)

    배열(Array) 배열은 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조이다. 배열의 값은 인덱스를 통해 참조할 수 있으며, 선언한 자료형의 값만 저장할 수 있다. 다음 그림은 배열을 나타낸 것이다. 그림을 보면 배열에 값 1, 값 2, ... 값 6이 채워져 있고, 각 값은 0부터 5까지 인덱스가 지정되어 있다. 배열의 특징 인덱스를 사용하여 값에 바로 접근할 수 있다. 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. 값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요하다. 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없다. 구조가 간단하므로 코딩 테스트에서 많이 사용한다. 리스트(List) 리스트는 값과 포..

    [Algorithm] 시간 복잡도(Time Complexity)

    시간 복잡도(Time Complexity) 알고리즘에서 시간 복잡도는 주어진 문제를 해결하기 위한 연산 횟수를 말한다. 일반적으로 수행 시간은 1억 번의 연산을 1초의 시간으로 간주하여 예측한다. 시간 복잡도 유형 - 빅-오메가(Ω(n)) : 최선일 때(best case)의 연산 횟수를 나타낸 표기법 - 빅-세타(θ(n)) : 보통일 때(average case)의 연산 횟수를 나타낸 표기법 - 빅-오(O(n)) : 최악일 때(worst case)의 연산 횟수를 나타낸 표기법 코팅 테스트에서는 어떤 시간 복잡도 유형을 사용해야 할까? 코팅 테스트에서는 빅-오 표기법(O(n))을 기준으로 수행 시간을 계산하는 것이 좋다. 실제 테스트에서는 응시자가 작성한 프로그램으로 다양한 테스트 케이스를 수행해 모든 케이..

    [백준] 10818번 : 최소, 최대 - JAVA [자바]

    https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 풀이 👉 배열을 사용하는 방법 StringTokenizer.hasMoreTokens() 메소드는 다음에 읽어 들일 token이 있으면 true, 없으면 false를 return 한다. Arrays.sort() 메소드는 배열을 오름차순으로 정렬해 준다. import java.io.BufferedReader; import java.io.IOException; ..

    [백준] 11721번 : 열 개씩 끊어 출력하기 – JAVA [자바]

    https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 문제 풀이 👉 String.toCharArray() 을 이용한 방법 toCharArray() 메소드는 문자열을 한 글자씩 잘라서 char 배열 형태로 리턴한다. import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStre..

    [백준] 2438번 : 별 찍기 - 1 – JAVA [자바]

    https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 문제 풀이 👉 기본적인 방법 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.pars..

    [백준] 11720번 : 숫자의 합 – JAVA [자바]

    https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 문제 풀이 우선, 문제를 보면 N의 범위가 1부터 100까지이므로 값을 ing형, long형과 같은 숫자형으로 담을 수 없기 때문에 문자열 형태로 입력값을 받아야 한다. 👉 BufferedReader + String.charAt() 먼저 숫자의 개수인 n을 입력받고, 다음 줄에 숫자를 정수가 아닌 String형으로 입력을 받는다. 그리고 for문을 통해 입력받은 문자열의 첫 번째 원소(charAt(0)) 부터 마지막 원소(charAt(n)) 까지 각 원소의 누적 합을 구하면 된다..

    [백준] 11718번~11719번 : 그대로 출력하기 – JAVA [자바]

    https://www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net https://www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 문제 🎯 11718번 🎯 11719번 풀이 문제..

    [백준] 11021번 : A+B - 7 – JAVA [자바]

    https://www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 문제 풀이 👉 BufferedReader + StringTokenizer + StringBuilder 을 이용한 방법 참고로 append 를 한 번에 적어줘도 된다. sb.append("Case #"+ i + ": " + (Integer.parseInt(st.nextToken())+Integer.parseInt(st.nextToken())) + "\n" ); 근데 아래 코드처럼 나눠서 쓰는 이유는 직접 테스트해보면 알겠지만 저렇게 출력할 문자에 여러 타입이 섞여있으..