반응형

OFFSET ROWS FETCH

SQL Server 2012부터 지원되는 OFFSET ROWS FETCH 문법을 활용하여 Paging을 처리해보자.

 

OFFSET ROWS FETCH 사용 방법

ORDER BY 컬럼
OFFSET {건너뛸 행의 숫자} ROW
FETCH NEXT {해당 숫자만큼 행 출력} ONLY

 

아래 학생 데이터를 나이로 정렬하여 3개씩 출력해보자

declare @page_no int = 1
declare @page_size int = 3

SELECT studentName, studentAge
FROM dbo.Student WITH (NOLOCK)
ORDER BY studentAge
OFFSET (@page_no-1) * @page_size ROW
FETCH NEXT @page_size ROW ONLY

[1Page 3개 출력]

set @page_no = 2
set @page_size = 3

SELECT studentName, studentAge
FROM dbo.Student WITH (NOLOCK)
ORDER BY studentAge
OFFSET (@page_no-1) * @page_size ROW
FETCH NEXT @page_size ROW ONLY

[2Page 3개 출력]

 

반응형

'DB > MSSQL' 카테고리의 다른 글

BETWEEN - AND  (0) 2020.11.03
UNPIVOT  (0) 2020.10.20
ALTER 문  (0) 2020.07.22
무결성 제약조건 CHECK  (0) 2020.07.12
문자열 char / varchar / nchar / nvarchar  (0) 2020.07.12
반응형

1. Inline Style Sheet

 Inline Style Sheet은 HTML 태그 Style 속성에 CSS 코드를 직접 넣는 방법이다.

<div id="wrap" style="background-color:blue"></div>

 

2. Internal Style Sheet

 Internal Style Sheet은 HTML 페이지 내 <style></style> 코드를 입력 후 안에 CSS 코드를 입력하는 방법이다.

<style>
	div{
    	background-color:blue;
    }
</style>

 

3. Linking Style Sheet

 Linking Style Sheet은 CSS 파일을 생성 후 이를 HTML 문서와 연결하는 방법이다.

 아래와 같은 태그를 적용하고 싶은 HTML 페이지에 추가 후 href로 적용할 .css 파일 경로를 입력하여 연결한다.

<link rel="stylesheet" href="LinkingStyleSheet.css"/>

 

 

반응형

'프로그래밍 > Web Program' 카테고리의 다른 글

GET / POST  (0) 2022.03.05
쿠키(Cookie)와 세션(Session)  (0) 2021.04.30
Substitution  (0) 2020.02.24
Output Cache (출력캐시)  (0) 2018.07.26
반응형

[풀이] BFS로 접근 > 바이러스가 퍼지는 PC를 Queue에 담고 Queue에서 연결된 PC 개수 조회

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Baekjoon2606 {

	static int pc;
	static int network;
	static int[][] map;
	static int[] visit;
	static int cnt =0;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Scanner sc = new Scanner(System.in);
		
		pc = 0 ;
		network = 0;
		
		pc = sc.nextInt();
		network = sc.nextInt();
		map = new int[pc+1][pc+1];
		visit = new int[pc+1];
		
		for(int i=0;i<network;i++) {
			int n = sc.nextInt();
			int m = sc.nextInt();
			
			map[n][m] = 1;
			map[m][n] = 1;
		}		
		
		virusMove();
		System.out.println(cnt-1); // 1번 컴퓨터를 제외 한 수
		
	}
	
	public static void virusMove() {
		Queue<Integer> queue = new LinkedList<Integer>();
		queue.add(1);
		
		while(!queue.isEmpty()) {
			int startPc = queue.poll();
			
			for(int i=1;i<=pc;i++) {
				if(map[startPc][i] == 1 && visit[i] != 1) {
					// 방문하지 않은 연결된 PC 시작점 Queue에 추가
					queue.add(i);
					visit[i] = 1;
					cnt++;
				}
			}
		}
	}
}

[Github] github.com/blackmount22/Algorithm/blob/master/Baekjoon2606.java

[Baekjoon] www.acmicpc.net/problem/2606

 

2606번: 바이러스

첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어��

www.acmicpc.net

 

반응형

'알고리즘 > Baekjoon' 카테고리의 다른 글

[Baekjoon] #1157 단어 공부  (0) 2022.03.06
[Baekjoon] #2675 문자열 반복  (0) 2022.03.05
[Baekjoon] #3184 양  (0) 2020.04.28
[ Baekjoon ] #2178 미로 탐색  (0) 2020.04.26
[ Baekjoon ] #7576 토마토  (0) 2020.04.22
반응형

프로그래머스: 2016년 문제

https://programmers.co.kr/learn/courses/30/lessons/12901

 

풀이 방식:

입력받은 a월 b일과 1월 1일 금요일을 기준으로 날짜수의 차이를 구한 후, 7로 나눈 다음 나머지 값으로 days[] 배열에서 해당 요일 조회

import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;

class Solution {
    public String solution(int a, int b) {
        String answer = "";
        String date1 = "2016-01-01";
		String date2 = "2016-"+a+"-"+b;
		String[] days = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"};
		
		try {			
			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
			Date firstDate = format.parse(date1);
			Date secondDate = format.parse(date2);
			
			long timeDiff = secondDate.getTime() - firstDate.getTime();
			long calTimeDiff = timeDiff / (24*60*60*1000);
			
			int remainder = (int)calTimeDiff % 7;
			
			answer = days[remainder];
			
		}catch(ParseException e){
			
		}
        
        return answer;
    }
}

 

[Github]

https://github.com/blackmount22/algorithm-programmers/blob/master/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%20-%202016.txt

반응형

'알고리즘 > 프로그래머스' 카테고리의 다른 글

숫자 짝꿍  (0) 2024.02.25
실패율  (0) 2024.02.23
추억 점수  (0) 2024.02.22
푸드 파이트 대회  (0) 2024.02.21
모의고사  (0) 2020.08.01
반응형

완전 탐색(Brute-Force)

: 컴퓨터의 빠른 계산 능력을 이용하여 모든 경우의 수를 전부 탐색하는 방법으로, 탐색하는 방식에 따라

Brute-Force(for문, if문을 이용하여 처음부터 끝까지 탐색하는 방법), DFS/BFS 그래프 알고리즘, 백트래킹 등이 있다.

단점으로는 완전탐색이다 보니 답을 찾는데 시간이 오래 걸린다.

 

프로그래머스: 모의고사 문제

https://programmers.co.kr/learn/courses/30/lessons/42840

import java.util.ArrayList;
import java.util.Collections;

class Solution {
    public int[] solution(int[] answers) {
		int[] studentA = {1,2,3,4,5};
		int[] studentB = {2,1,2,3,2,4,2,5};
		int[] studentC = {3,3,1,1,2,2,4,4,5,5};
		int[] result;
		
		int answerA = 0;
		int answerB = 0;
		int answerC = 0;
		
		for(int i=0;i<answers.length;i++) {
			if(studentA[i%studentA.length] == answers[i]) answerA++;
			if(studentB[i%studentB.length] == answers[i]) answerB++;
			if(studentC[i%studentC.length] == answers[i]) answerC++;
		}
		
		int maxCnt = Math.max(Math.max(answerA, answerB), answerC);
		ArrayList<Integer> ar = new ArrayList<Integer>();
		
		if(maxCnt == answerA) {
			ar.add(1);
		}
		
		if(maxCnt == answerB) {
			ar.add(2);
		}
		
		if(maxCnt == answerC) {
			ar.add(3);
		}
		
		Collections.sort(ar);
		result = new int[ar.size()];
		for(int i=0;i < ar.size();i++) {
			result[i] = ar.get(i);
		}
        
        return result;
    }
}

 

반응형

'알고리즘 > 프로그래머스' 카테고리의 다른 글

숫자 짝꿍  (0) 2024.02.25
실패율  (0) 2024.02.23
추억 점수  (0) 2024.02.22
푸드 파이트 대회  (0) 2024.02.21
2016년  (0) 2020.08.31

+ Recent posts