반응형
반응형

문제

vscode 환경에서 파이썬을 가지고 map에 있는 값을 읽을려고 print() 실행 했을 때 <map object at 0x10446d880>이라고 나왔다.

읽을 수 있게 바꿔야 합니다.

 

코드

def twoSum(nums, target):
	# arr map
    arr = map(lambda x: x < target, nums)

nums = [2,7,11,15]
target = 9
twoSum(nums, target)

 

해결

1. for문

for num in arr:
	print(num)

 

2. map을 list로 담기

arr = list(map(lambda x: x < target, nums))
print(arr)

 

 

반응형

'Python' 카테고리의 다른 글

File 읽어서 객체에 담기  (0) 2024.09.04
파이썬 lambda 사용시  (0) 2023.06.01
[python] list 사용 방법  (0) 2023.05.29
zip()  (0) 2023.05.03
combinations()  (0) 2023.05.03
반응형

Clustered vs NonClustered (index 개념)

Database에서 index의 구조는 크게 Clustered 와 NonClustered로 나눠집니다.

 

Clustered

Clustered index는 데이터가 테이블에 물리적으로 저장되는 순서를 정의합니다. 즉, Clustered index는 특정 컬럼을 기준으로 데이터들을 정렬시켜줍니다. 테이블 데이터는 오직 한 가지의 방법으로만 정렬되기 때문에 테이블 당 하나의 Clustered index가 존재합니다.

단점으로는 새로운 데이터를 삽입할 때는 많은 비용이 소모되는 담점이 존재합니다.

 

주로 사용될 때:

  • 테이블 데이터가 자주 업데이트 되지 않는 경우
  • 항상 정렬 된 방식으로 데이터를 반환해야하는 경우
  • 테이블은 정렬되어있기 때문에 ORDER BY 절을 활용해 모든 테이블 데이터를 스캔하지 않고 원하는 데이터를 조회할 경우
  • 읽기 작업이 월등히 많은 경우(Read 속도가 빠릅니다.)

 

NonClustered

NonClustered index는 군집화 되어있지 않은 index를 말합니다. 즉, 테이블에 저장된 순서에 따라 데이터를 정렬하지 않습니다. 또한 NonClustered index는 별도의 장소에 저장되어 사용됩니다. 그러므로 별도의 공간(약 10%)이 필요합니다.

 

주로 사용될 때:

  • where절이나 join 절과 같이 조건문을 활용하여 테이블을 필터링 하고자할 때
  • 데이터가 자주 업데이트 될 때
  • 특정 컬럼이 쿼리에서 자주사용 될 때
반응형

'DB' 카테고리의 다른 글

Procedure과 Function의 차이  (0) 2023.05.31
반응형
반응형

Procedure와 Function의 차이

  • Procedure는 로직을 기술하여 해당 업무 처리를 직접 하는 용도로 많이 사용되고, Function은 로직을 도와주는 목적으로 사용됩니다.
  • Procedure은 select, where문 등에서 사용이 불가능 하지만 Function은 사용 가능합니다.
  • Procedure은 클라이언트에서 값을 건네받아 서버에서 작업을 한 뒤 클라이언트에게 전달하지만, Function은 클라이언트에서 값을 건네 받고 서버에서 필요한 값을 가져와서 클라이언트에서 작업을 하고 반환합니다.

Procedure이란?

일련의 쿼리를 하나의 함수로 실행할 수 있는 쿼리의 집합입니다. 예를 들어 네이버에서 상품을 구매하기 위해서 로그인, 상품 선택, 상품 구매 등 여러 프로세스를 한 번의 procedure에 담아 실행 할 수 있습니다.

 

잠정

  1. 하나의 요청으로 여러 SQL문을 실행할 수 있습니다.
  2. 서버에서 실행되기 때문에 속도가 빠릅니다.
  3. 리턴값이 있을 수도, 없을 수도 있습니다.
  4. 여러개의 리턴값을 보낼 수 있습니다.

단점

  1. 재사용성이 좋지 않습니다.

코드

CREATE OR REPLACE PROCEDURE 프로시저 이름 ( 
	매개변수명1 [ IN || OUT || INOUT ] 데이터타입
	, 매개변수명2 [ IN || OUT || INOUT ] 데이터타입 ... 
) IS||AS 변수, 상수 등 선언 ( 선언부 ) 
BEGIN 실행 문장 ( 실행부 ) 
EXCEPTION 문장 //필수아님 
END ;

호출 방법

CALL 프로시저명(IN파라미터명, @OUT파라미터명)
EXECUTE 프로시저명(IN파라미터명, @OUT파라미터명)

 

Function이란?

각 프로세스를 수행하기 위해 필요한 기능들입니다.

Function은 리턴값이 필수입니다.

담점

  1. 클라이언트에서 실행되기 때문에 프로시저보다는 느리다

코드

CREATE OR REPLACE FUNCTION 함수 이름
     ( 매개변수명1 매개변수1타입,
       매개변수명2 매개변수2타입 ... )
  RETURN 데이터타입
  IS||AS
         변수, 상수 등 선언 ( 선언부 )
  BEGIN
         실행 문장 ( 실행부 )
         RETURN 반환값    //필수
         EXCEPTION 문장   //필수아님
  END ;

호출 방법

SELECT 함수명(IN 파라미터명) FROM DUAL;

 

참조

https://velog.io/@devjooj/Mysql-Function과-Procedure-차이

https://fomaios.tistory.com/entry/Oracle-함수Function와-프로시저Procedure-차이

반응형

'DB' 카테고리의 다른 글

Clustered vs NonClustered (index 개념)  (0) 2023.05.31
반응형
반응형

list 사용 방법

  • 리스트는 [] 기호를 사용하여 표현
  • L = [i for i in L if i % 3 == 0] 도 가능
  • del(L[2]) - 리스트 특정 인덱스 내용을 삭제
  • del(L) - 리스트 자체를 삭제
  • t = (1, 2, 3, 4, 5)
  • L = list(t) - 튜플(tuple), 집합(set)과 같은 다른 자료형을 리스트로 바꾸기 위해서는 list()를 사용
  • append(값) - 리스트에 값을 하나 추가
  • insert(인덱스, 값) - 인덱스 위치에 값을 하나 추가
  • extend(iterable) - iterable 인자를 넘겨 리스트에 추가
  • copy() - 리스트 복사 (리턴받아 사용)
  • remove(값) - 전달한 값을 삭제 (중복된 경우 처음 나오는 값을 삭제)
  • pop(인덱스) - 인덱스에 위치한 값을 리턴하면서 삭제 (인자가 없으면 맨 뒤 값을 pop)
  • clear() - 리스트 값 모두 삭제 (빈 리스트 생성)
  • count(값) - 인자로 전달한 값의 개수를 확인
  • len() - 리스트의 길이를 확인하기 위해서는  함수를 사용
  • index(인덱스) - 인덱스에 위치한 값을 확인
  • reverse() - 리스트에 들어있는 값을 역순(거꾸로)으로 변경
  • sort() - 리스트 내용을 정렬 (오름차순)(reverse=True를 인자로 전달하면 내림차순 정렬이 가능)
반응형

'Python' 카테고리의 다른 글

파이썬 lambda 사용시  (0) 2023.06.01
print 하면 <map object at 0x10446d880> 나올 때  (0) 2023.06.01
zip()  (0) 2023.05.03
combinations()  (0) 2023.05.03
[panda]info()  (0) 2023.04.26
반응형
반응형

문제

현재 Mac pro1에 vscode에서 javac를 통해 컴파일하고 나서 실행할려고 했는데 컴파일에서 cannot find symbol error가 발생했습니다. 원인은 package 때문에 발생했습니다.

 

해결

package를 제거해주거나 위치 설정을 잡아 줍니다.

반응형

'Java' 카테고리의 다른 글

Java 7 functions  (0) 2023.06.18
JDK, JRE, JVM이란?  (0) 2023.06.15
[ERROR]Illegal modifier for the interface field Observer.name; only public, static & final are permitted  (0) 2023.05.29
AOP이란?  (0) 2023.05.11
반응형
반응형

interface 생성 중 객체 생성 할 때 private으로 설정을 해서 Illegal modifier for the interface field Observer.name; only public, static & final are permitted 에러가 발생했습니다.

 

발생 원인은 interface는 외부로 공개되는 메소드를 정의하는 것인데 private 객체를 선언 했기 때문입니다.

error를 해결하는 방법은 private을 public, static & final 수정해주면 됩니다.

반응형

'Java' 카테고리의 다른 글

Java 7 functions  (0) 2023.06.18
JDK, JRE, JVM이란?  (0) 2023.06.15
[ERROR]cannot find symbol  (0) 2023.05.29
AOP이란?  (0) 2023.05.11
반응형

 

문제

postman에서 get 방식 호출하는데 

Cloud Agent Error: Can not send requests to reserved address. Make sure address is publicly accessible or select a different agent.

발생했습니다. 

이유는 postman에서 호출하는건 localhost가 아니라서 인거 같습니다.

 

해결

Desktop을 다운 받고 실행하니 해결되었습니다.

반응형

'IT' 카테고리의 다른 글

Build, Deploy, Complie  (0) 2023.06.13
WEB-INF와 META-INF 차이  (0) 2023.06.13
REST란?  (0) 2023.05.11
SOAP이란?  (0) 2023.05.11
[git]There isn’t anything to compare  (0) 2023.05.08
반응형

무인도 여행 문제

https://school.programmers.co.kr/learn/courses/30/lessons/154540?language=java 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

핵심 내용

지도를 나타내는 문자열 배열 maps가 매개변수로 주어질 때, 각 섬에서 최대 며칠씩 머무를 수 있는지 배열에 오름차순으로 담아 return 하는 solution 함수를 완성해주세요. 만약 지낼 수 있는 무인도가 없다면 -1을 배열에 담아 return 해주세요.

 

코드 및 분석(다른 분의 코드)

*주석은 해당 코드 위에 적는 방식으로 적겠습니다.

import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;

class Solution {
    static int sum=0;
    
    public int[] solution(String[] maps) {
        List<Integer> list = new ArrayList<>();
        
        # 방문한 node를 기록할 객체 생성합니다.
        boolean[][] visited = new boolean[maps.length][maps[0].length()];
        
        # maps의 길이만큰 돌도록 for문 돌립니다.
        for(int i=0; i<maps.length; i++) {
        	for(int j=0; j<maps[i].length(); j++) {
        		
                node마다 dfs 함수를 실행합니다.
                dfs(maps, visited, i, j);
        		if(sum>0) {
        			list.add(sum);
        			sum=0;
        		}
        	}
        }
        
        # 조건 중 list가 0이면 -1 값을 return 합니다.
        if(list.size()==0) return new int[] {-1};
        
        int[] answer = new int[list.size()];
        for(int i=0; i<answer.length; i++) {
        	answer[i]=list.get(i);
        }
        
        # 배열을 오름차순으로 바꿔줍니다.
        Arrays.sort(answer);
        return answer;
    }
    
    public void dfs(String[] maps, boolean[][] visited, int i, int j) {
    	# 인덱스 값이 0 아래이거나 maps의 길이보다 크면 안되기 때문에 체크를 합니다.
        if(i<0 || j<0 || i>=maps.length || j>=maps[0].length()) return;
        
        # 2번째 조건으로 'X'이거나 벌써 사용한 node인지 체크 합니다.
    	if(maps[i].charAt(j) == 'X' || visited[i][j]) return;
    	else {
        	# visited[i][j] 값을 true로 바꿔줍니다.
    		visited[i][j]=true;
            # Ascii code를 사용해서 int로 형변환합니다. '0'의 아스키코드는 48입니다.
    		sum+=maps[i].charAt(j)-'0';
    	}
        
        # i와 j 전체를 탐색하도록 dfs를 호출해줍니다.
    	dfs(maps, visited, i+1, j);
    	dfs(maps, visited, i-1, j);
    	dfs(maps, visited, i, j+1);
    	dfs(maps, visited, i, j-1);
    }
}
반응형

+ Recent posts