전체 글 215

[프로그래머스, LV.0] 원하는 문자열 찾기

목차 #1 원하는 문자열 찾기 문제설명 알파벳으로 이루어진 문자열 myString과 pat이 주어집니다. myString의 연속된 부분 문자열 중 pat이 존재하면 1을 그렇지 않으면 0을 return 하는 solution 함수를 완성해 주세요. 단, 알파벳 대문자와 소문자는 구분하지 않습니다. 제한사항 1 ≤ myString의 길이 ≤ 100,000 1 ≤ pat의 길이 ≤ 300 myString과 pat은 모두 알파벳으로 이루어진 문자열입니다. 입출력 예 myString pat return "AbCdEfG" "aBc" 1 "aaAA" "aaaaa" 0 입출력 예 설명 "AbCdEfG"의 0~2번 인덱스의 문자열은 "AbC"이며, 이는 pat인 "aBc"와 같습니다. 따라서 1을 return 합니다. ..

[프로그래머스, LV.0] 1로 만들기

목차 #1 1로 만들기 문제 설명 정수가 있을 때, 짝수라면 반으로 나누고, 홀수라면 1을 뺀 뒤 반으로 나누면, 마지막엔 1이 됩니다. 예를 들어 10이 있다면 다음과 같은 과정으로 1이 됩니다. 10 / 2 = 5 (5 - 1) / 2 = 4 4 / 2 = 2 2 / 2 = 1 위와 같이 4번의 나누기 연산으로 1이 되었습니다. 정수들이 담긴 리스트 num_list가 주어질 때, num_list의 모든 원소를 1로 만들기 위해서 필요한 나누기 연산의 횟수를 return 하도록 solution 함수를 완성해 주세요. 제한사항 3 ≤ num_list의 길이 ≤ 15 1 ≤ num_list의 원소 ≤ 30 입출력 예 num_list result [12, 4, 15, 1, 14] 11 입출력 예 설명 입출력..

[프로그래머스, LV.0] 조건에 맞게 수열 변환하기 2

목차 #1 조건에 맞게 수열 변환하기 2 문제설명 정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱하고 다시 1을 더합니다. 이러한 작업을 x번 반복한 결과인 배열을 arr(x)라고 표현했을 때, arr(x) = arr(x + 1)인 x가 항상 존재합니다. 이러한 x 중 가장 작은 값을 return 하는 solution 함수를 완성해 주세요. 단, 두 배열에 대한 "="는 두 배열의 크기가 서로 같으며, 같은 인덱스의 원소가 각각 서로 같음을 의미합니다. 제한사항 1 ≤ arr의 길이 ≤ 1,000,000 1 ≤ arr의 원소의 값 ≤ 100 입출력 예 arr result [1, 2, 3, 100, 99, 98] 5..

[프로그래머스, LV.0] 조건에 맞게 수열 변환하기 1

목차 #1 조건에 맞게 수열 변환하기 1 문제 설명 정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱합니다. 그 결과인 정수 배열을 return 하는 solution 함수를 완성해 주세요. 제한 사항 1 ≤ arr의 길이 ≤ 1,000,000 1 ≤ arr의 원소의 값 ≤ 100 입출력 예 arr result [1, 2, 3, 100, 99, 98] [2, 2, 6, 50, 99, 49] 입출력 예 설명 입출력 예 #1 1, 3은 50 미만의 홀수 이므로 2를 곱하고, 100, 98은 50 이상의 짝수이므로 2로 나눕니다. 나머지 값들은 변경 조건에 해당하지 않으므로 바꾸지 않습니다. 따라서 [2, 2, 6, 50,..

1) 텐서플로우(Tensorflow)

목차 텐서플로우 텐서플로는 구글의 어느 한 팀에 의해 공개된 대표적인 머신러닝 라이브러리이다. 이는 파이썬뿐만 아니라, 다양한 언어를 사용하고 모델을 개발하고 배포할 수 있는 다양한 도구를 지원한다. 그리고 텐서플로우는 딥러닝 연산을 처리하는 라이브러리로서 텐서라고 불리는 데이터를 계산 그래프 구조를 통해 흘려가면서 복잡한 행렬 연산을 처리하게 된다. 이번에는 파이썬 언어를 이용해 공부해보자 한다. 텐서플로우 자료구조 텐서플로우는 파이썬 자료형 값들을 텐서플로우 자료구조인 텐서(Tensor)로 변환되어 처리하는데.. 0차원 텐서인 스칼라, 1차원 벡터, 2차원 행렬, 3차원 텐서, 4차원 텐서..... 차수가 1씩 증가함에 따라 데이터 구조가 확장된다. 여기서 차수는 차원의 수를 말하는 것이며 텐서를 구..

4) 자바 8

자바 8에서의 변경된 사항. 1. 람다 표현식(lambda expression) 람다 표현식은 함수형 프로그래밍을 지원하기 위해 도입된 새로운 표현식이다. 람다 표현식은 메서드를 하나의 식으로 표현할 수 있게 해 주고 람다 표현식의 기본 문법은 다음과 같다. (매개변수) -> 식 예를 들어, 다음과 같은 메소드가 있다고 가정해 보면. 이 메서드는 배열에 저장된 짝수를 출력한다. public void printEvenNumbers(int[] numbers) { for (int number : numbers) { if (number % 2 == 0) { System.out.println(number); } } } 이 메소드를 람다 표현식으로 바꾸면 다음과 같다. public class Main { publi..

JAVA 2023.12.23

3) 자바 입출력문

목차 입출력을 위한 클래스 자바에서는 사용자가 프로그램과의 대화를 위해 프로그램에 세 입력을 주고 프로그램은 출력을 해주는 수단이 필요한데 C언어와 비슷하게 printf(), scanf() 함수처럼 System이라는 표준 입출력 클래스를 제공한다. 1. System.in System.in은 자바의 표준 입력 스트림입니다. 콘솔로부터 데이터를 입력받는 데 사용이 되며, System.in은 InputStream 클래스의 인스턴스이다. System.in을 사용하여 콘솔로부터 입력받는 방법은 다음과 같다. Scanner class import java.io.*; public class Main { public static void main(String[] args) throws IOException { // 가..

JAVA 2023.12.23

2) 자바 프로그램

자바 코드의 구성 자바는 한 개 이상의 클래스(class)로 구성이되고 이 클래스는 한 개 이상의 필드field나 메소드 method로 구성이 된다. 매우 간단하게 예를 들면 밑에 코드처럼 작성이 된 것을 보면 이해가 될 것이다. public class Study { // 필드 int field1; String field2; // 메소드 public void method(){ System.out.println("안녕!"); } } public class Main { // 필드 int field1; static String field2; public static void main(String[] args) { field2 = method_hello(); System.out.println(field2); }..

JAVA 2023.12.20

1) 자바 개념

Java 객체지향하면 대표적인 언어로 Java, C++, Python, C#, Swift 등 많은 언어를 생각할 것이다. 여기서 내가 공부하는 자바는 처음부터 객체지향 언어로 개발된 프로그래밍 언어로서 C언어에 객체지향 개념은 얹은 C++과는 사뭇 다르다. 이러한 자바는 자바 가상 머신 Java Virtual Machine, JVM을 사용하는데... C++은 자바와 다르게 컴파일된 코드가 특정한 플랫폼에 의존적인데, C++코드는 기계어로 직접 변환되며, 이는 특정 운영체제와 하드웨어 아키텍처에 맞춰져 있어 C++로 작성된 프로그램을 다른 운영체제에서 실행하려면 해당 운영체제에 맞게 다시 컴파일해야 한다. 하지만 자바는 "Write Once, Run Anywhere(WORA)"라는 개념을 지향해 특정 운영..

JAVA 2023.12.20

[알고리즘] 검색 2 - 해싱 + 단어 사전 프로그램

목차 해싱 Hashing 해싱은 키값을 비교하여 찾는 검색 방법이 아니라 산술적인 연산으로 키가 있는 위치를 계산하여 바로 찾아가는 방식이다. 키값을 원소 위치로 변환하는 함수를 해시 함수 Hash Function, 해시 함수로 계산된 주소 위치에 항목을 저장한 표를 해시 테이블 Hash Table이라고 한다. 이러한 해싱을 이용해서 유용하게 활용이 가능한 곳에는.... 데이터 무결성 확인: 해시 함수는 입력 데이터에 대해 고정된 크기의 해시 값을 생성한다. 이는 데이터의 무결성을 확인하는 데 사용될 수 있고 데이터가 변경되었을 때 해시 값도 변경되기 때문에 변경 여부를 쉽게 감지할 수 있다. 암호학: 해시 함수는 암호학에서도 중요한 역할을 하는데, 패스워드 저장 및 검증, 디지털 서명, 메시지 인증 등..

알고리즘 2023.12.09