분류 전체보기 (254)
2022-01-28 05:18:57
반응형
반응형
2022-01-28 05:11:57
반응형
반응형
2022-01-28 04:57:24
반응형
반응형
2022-01-28 04:46:46
반응형

Consecutive Numbers

 

 문제 설명

 

Table: Logs

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| num         | varchar |
+-------------+---------+
id is the primary key for this table.

 

Write an SQL query to find all numbers that appear at least three times consecutively.

Return the result table in any order.

The query result format is in the following example.

 

 입출력 예

 

Example 1:

Input: 
Logs table:
+----+-----+
| id | num |
+----+-----+
| 1  | 1   |
| 2  | 1   |
| 3  | 1   |
| 4  | 2   |
| 5  | 1   |
| 6  | 2   |
| 7  | 2   |
+----+-----+
Output: 
+-----------------+
| ConsecutiveNums |
+-----------------+
| 1               |
+-----------------+
Explanation: 1 is the only number that appears consecutively for at least three times.

 

 Oracle Query

 

SELECT DISTINCT 
	l1.Num As ConsecutiveNums
FROM Logs l1
JOIN Logs l2 ON l1.Id = l2.Id-1
JOIN Logs l3 ON l2.Id = l3.Id-1
WHERE l1.Num = l2.Num
	AND l2.Num = l3.Num;

* 참고 링크 : https://leetcode.com/problems/consecutive-numbers/discuss/185886/Self-Join-Twice-(681-ms-faster-than-100.00-of-Oracle-online-submissions-for-Consecutive-Numbers.)

 

 출처

 

https://leetcode.com/problems/consecutive-numbers/

반응형
2022-01-28 04:23:15
반응형

Valid Triangle Number

 

 문제 설명

 

Given an integer array nums, return the number of triplets chosen from the array that can make triangles if we take them as side lengths of a triangle.

 

 제한 사항

 

  • 1 <= nums.length <= 1000
  • 0 <= nums[i] <= 1000

 

 입출력 예

 

Example 1:

Input: nums = [2,2,3,4]
Output: 3
Explanation: Valid combinations are: 
2,3,4 (using the first 2)
2,3,4 (using the second 2)
2,2,3

Example 2:

Input: nums = [4,2,3,4]
Output: 4

 

 Python 코드

 

Python code 

class Solution(object):
    def triangleNumber(self, nums):

        nums, count, n = sorted(nums, reverse=1), 0, len(nums)
        for i in range(n):
            j, k = i + 1, n - 1
            while j < k:
                if nums[j] + nums[k] > nums[i]:
                    count += k - j
                    j += 1
                else:
                    k -= 1
        return count

* 참고 링크 : https://leetcode.com/problems/valid-triangle-number/discuss/104177/O(N2)-solution-for-C%2B%2B-and-Python

 

 C++ 코드

 

C ++ code

class Solution {
public:
    int triangleNumber(vector<int>& nums) {
        if(nums.size() < 3) return 0;
        sort(nums.begin(), nums.end(), greater<int>());
        int res = 0;
        int n = nums.size();
        for(int a = 0; a < n-2; ++a){
            int b = a+1;
            int c = n-1;
            while(b < c){
                if(nums[b] + nums[c] > nums[a]){
                    res = res + c - b;
                    ++b;
                }
                else
                    --c;
            }
        }
        return res;
    }
};

* 참고 링크 : https://www.programmerall.com/article/1415760413/

 

 출처

 

https://leetcode.com/problems/valid-triangle-number/

반응형
2022-01-28 03:38:43
반응형

Find Peak Element

 

 문제 설명

 

A peak element is an element that is strictly greater than its neighbors.

Given an integer array nums, find a peak element, and return its index. If the array contains multiple peaks, return the index to any of the peaks.

You may imagine that nums[-1] = nums[n] = -∞.

You must write an algorithm that runs in O(log n) time.

 

 제한 사항

 

  • 1 <= nums.length <= 1000
  • -231 <= nums[i] <= 231 - 1
  • nums[i] != nums[i + 1] for all valid i.

 

 입출력 예

 

Example 1:

Input: nums = [1,2,3,1]
Output: 2
Explanation: 3 is a peak element and your function should return the index number 2.

Example 2:

Input: nums = [1,2,1,3,5,6,4]
Output: 5
Explanation: Your function can return either index number 1 where the peak element is 2, or index number 5 where the peak element is 6.

 

 Python 코드

 

Python code 

class Solution:
    def findPeakElement(self, nums: List[int]) -> int:
        left = 0
        right = len(nums)-1
				# left가 커지고 right가 작아지는 경우 left와 right가 같아질 수 있다.
        # 그 때 원한느 값을 찾은 경우이므로 left와 right가 같아지면 반복문 종료
        while left < right:
            mid = (left + right) // 2      # 가운데 지점
            if nums[mid] < nums[mid+1]:    # 현재 값이 오른쪽 값보다 작다면
                left = mid+1
            else:                          # 현재 값이 오른쪽 값보다 크다면
                right = mid
        return left                        # 반복문이 종료되면 left가 정답

* 참고 링크 : https://velog.io/@hrpp1300/LeetCode-162.-Find-Peak-Element

 

 C++ 코드

 

C ++ code

class Solution {
public:
    int findPeakElement(vector<int>& nums) {
        int left = 0;
        int right = nums.size() - 1;
        while (left < right) {
            int mid = left + (right - left) / 2;
            if (nums[mid] > nums[mid + 1]) {
                right = mid;
            }
            else {
                left = mid + 1;
            }
        }
        return left; 
    }
};

* 참고 링크 : https://myeongcs.tistory.com/80

 

 출처

 

https://leetcode.com/problems/find-peak-element/submissions/

반응형
2022-01-28 03:12:48
반응형

Same Tree

 

 문제 설명

 

We are playing the Guess Game. The game is as follows:

I pick a number from 1 to n. You have to guess which number I picked.

Every time you guess wrong, I will tell you whether the number I picked is higher or lower than your guess.

You call a pre-defined API int guess(int num), which returns three possible results:

  • -1: Your guess is higher than the number I picked (i.e. num > pick).
  • 1: Your guess is lower than the number I picked (i.e. num < pick).
  • 0: your guess is equal to the number I picked (i.e. num == pick).

Return the number that I picked.

 

 제한 사항

 

  • 1 <= n <= 231 - 1
  • 1 <= pick <= n

 

 입출력 예

 

Example 1:

Input: n = 10, pick = 6
Output: 6

Example 2:

Input: n = 1, pick = 1
Output: 1

Example 3:

Input: n = 2, pick = 1
Output: 1

 

 

 Python 코드

 

Python code 

# The guess API is already defined for you.
# @param num, your guess
# @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
# def guess(num: int) -> int:

class Solution: 
    def guessNumber(self, n: int) -> int: 
        left, right = 1, n 
        
        while True: 
            middle_num = int((left + right) / 2) 
            if guess(middle_num) == 1: 
                left = middle_num + 1 
            elif guess(middle_num) == -1: 
                right = middle_num - 1 
            else: 
                return middle_num

* 참고 링크 : https://somjang.tistory.com/entry/leetCode-374-Guess-Number-Higher-or-Lower-Python

 

 C++ 코드

 

C ++ code

//Runtime: 0 ms, faster than 100.00% of C++ online submissions for Guess Number Higher or Lower.
//Memory Usage: 7.3 MB, less than 100.00% of C++ online submissions for Guess Number Higher or Lower.

// Forward declaration of guess API.
// @param num, your guess
// @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
int guess(int num);

class Solution {
public:
    int guessNumber(int n) {
        int left = 1, right = n, cur = left+(right-left)/2;

        while(true){
            switch(guess(cur)){
                case -1:
                    right = cur-1;
                    cur = left+(right-left)/2;
                    break;
                case 1:
                    left = cur+1;
                    cur = left+(right-left)/2;
                    break;
                case 0:
                    return cur;
            }
        }
        return 0;
    }
};

* 참고 링크 : https://github.com/keineahnung2345/leetcode-cpp-practices/blob/master/374.%20Guess%20Number%20Higher%20or%20Lower.cpp

 

 출처

 

https://leetcode.com/problems/guess-number-higher-or-lower/

반응형
2022-01-26 08:16:15
반응형

DOM(Document Object Model) ?

DOM(Document Object Model)은 문서 객체 모델로 XML, HTML 문서의 각 항목을 계층으로 표현하여 생성, 변형, 삭제할 수 있도록 돕는 인터페이스이다. W3C의 표준이다.

 

 DOM TREE

 

<html>
	<head>
    	<title>Hello</title>
    </head>
    <body>
    	<p>aaa</p>
        <p>bbb</p>
        <span id="x">ccc</span>
        <span id="y">ddd</span>
        <a href="https://www.naver.com">네이버</a>
    </body>
</html>

 출처

 

DOM 정의 -  https://ko.wikipedia.org/wiki/%EB%AC%B8%EC%84%9C_%EA%B0%9D%EC%B2%B4_%EB%AA%A8%EB%8D%B8

https://post.naver.com/viewer/postView.nhn?volumeNo=25195764 

 

+ 강의 교재

반응형

'AI Bootcamp > HTML' 카테고리의 다른 글

[HTML] Eclipse에서 HTML 시작  (0) 2022.01.25
[HTML] Eclipse Apache Tomcat 연동  (0) 2022.01.24
2022-01-25 17:36:18
반응형

Eclipse에서 HTML 시작

 

HTML 실습

 

1. Eclipse 실행

2. [File] → [New] → [Dynamic Web Project]

- HTML Project 생성

3. [New Dynamic Web Project] Project name & Target runtime 설정 → Next

Project name : html_css

Target runtime : Apache Tomcat v8.5

4. [Next] 버튼 마우스로 클릭

5. [Finish] 버튼 마우스로 클릭

6. [WebContent] 선택 후 마우스 우클릭 → [New] → [HTML File]

- HTML 파일 생성

7. [New HTML File] → File name 입력 → [Finish] 버튼 마우스로 클릭

ex) File name : home.html

8. Templates : New HTML File (5) 선택 → [Finish] 버튼 마우스로 클릭

9. HTML File이 생성이 되면 아래와 같이 Missing node.js 팝업창이 발생 → 무시하고 OK 버튼 마우스로 클릭

10 . [Windows] → [Preferences] 

- UTF-8로 변경 설정

11. [Preferences] → [Web]

12.  [Web] → [CSS Files] → Encoding : ISO 10646/Unicode(UTF-8)로 변경

13.  [Web] → [HTML Files] → Encoding : ISO 10646/Unicode(UTF-8)로 변경

14. [Web] → [JSP Files] → Encoding : ISO 10646/Unicode(UTF-8)로 변경 → [Apply and Close] 버튼 마우스로 클릭

15. 생성한 HTML File 마우스로 우클릭 → Run As → 1 Run On Server 

16. [Run On Server] → [Finish] 버튼 마우스로 클릭 

17. Server 팝업창 열리면 OK 버튼 마우스로 클릭

The server may need be restarted. Do you want to restart the server? 

Restart server 체크

18. 

19.

20.

21. 

22.

23.

 

 

 출처

 

 

+ 강의 교재

반응형

'AI Bootcamp > HTML' 카테고리의 다른 글

[HTML] DOM TREE  (0) 2022.01.26
[HTML] Eclipse Apache Tomcat 연동  (0) 2022.01.24
2022-01-25 14:08:38
반응형

숫자 카드 2

 

 문제 설명

 

숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오.

 

 입력

 

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다.

셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다.

 출력

 

첫째 줄에 입력으로 주어진 M개의 수에 대해서, 각 수가 적힌 숫자 카드를 상근이가 몇 개 가지고 있는지를 공백으로 구분해 출력한다.

 예제 입출력

 

 Python 코드

 

from sys import stdin
from collections import Counter

# 1. n 입력
n = int(stdin.readline())

# 2. n개의 정수
arr = list(map(int, stdin.readline().split()))

# 3. m 입력
m = int(stdin.readline())

# 4. m개의 정수
find = list(map(int, stdin.readline().split())) 

# 5. counter 함수 활용
count = Counter(arr)

# print(count)
print(' '.join(str(count[x])   if x in count else '0' for x in find ))

* 참고 링크 : https://0equal2.tistory.com/62

 

 C++ 코드

 

#include <iostream> 
#include <vector> 
#include <algorithm> 

using namespace std; 

int n,m; 
vector<int> arr; 
vector<int> target; 

int main() { 
	ios_base :: sync_with_stdio(false); 
	cin.tie(NULL); cout.tie(NULL); 
	cin >> n; 
	
	int count[n]={0,}; 
	for(auto i = 0;i<n;i++) { 
		int x; 
		cin >> x; 
		arr.push_back(x); 
	} 
	
	sort(arr.begin(),arr.end()); 
	
	cin >> m; 
	for(auto i =0; i<m;i++) { 
		int x; 
		cin >> x; 
		
		cout << upper_bound(arr.begin(),arr.end(),x) - lower_bound(arr.begin(),arr.end(),x)<< " "; 
	} 
}

* 참고 링크 : https://tooo1.tistory.com/126

 출처

 

https://www.acmicpc.net/problem/10816

반응형
2022-01-25 00:46:39
반응형

소수찾기

 

 문제 설명

 

한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다.

각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요.

 

 제한 사항

 

  • numbers는 길이 1 이상 7 이하인 문자열입니다.
  • numbers는 0~9까지 숫자만으로 이루어져 있습니다.
  • "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다.

 

 입출력 예

 

number return
"17" 3
"011" 2

 

 Python 코드

 

from itertools import permutations
 
def solution(numbers):
    
    # 소수 판별할 리스트 만들기
    num_list = [] # 전체 순열 넣어줄 리스트
    for i in range(1,len(numbers)+1) :
        test_list = permutations(numbers,i)       
        for j in test_list :
            num_list.append(int("".join(j)))
        
    num_list = set(num_list) # 중복과 0, 1 제외
    if 0 in num_list :
        num_list.remove(0)        
    if 1 in num_list :
        num_list.remove(1)
        
    # 소수 판별 
    answer = len(num_list) # 모든 수가 소수라 가정하고 시작
    for i in num_list :
        if i != 2 :
            for j in range(2,int(i**0.5)+1) :
                if i % j== 0 :
                    answer -=1
                    break
        
    return answer

* 참고 링크 : https://mentha2.tistory.com/8

 

 C++ 코드

 

#include<string>
#include<vector>
#include<cmath>
 
using namespace std;
 
bool Visit[10000000];
bool Select[10];
int Answer;
 
bool IsPrime(int N)
{
    if (N == 0 || N == 1) return false;
 
    for (int i = 2; i <= sqrt(N); i++)
    {
        if (N % i == 0) return false;
    }
    return true;
}
 
void DFS(int Cnt, string S, string Res)
{
    if(Res != "" && Visit[stoi(Res)] == false)
    {
        int Num = stoi(Res);
        Visit[Num] = true;
        if (IsPrime(Num) == true) Answer++;
    }
 
    for (int i = 0; i < S.length(); i++)
    {
        if (Select[i] == true) continue;
        Select[i] = true;
        DFS(Cnt + 1, S, Res + S[i]);
        Select[i] = false;
    }
}
 
int solution(string S)
{
    DFS(0, S, "");
    return Answer;
}

* 참고 링크 : https://yabmoons.tistory.com/336

 출처

 

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

반응형
2022-01-24 10:32:38
반응형

Apache Tomcat

 

 

 Apache Tomcat 연동

 

0. Eclipse Pakages → Eclipse IDE for Enterprise Java and Web Developers Download

https://www.eclipse.org/downloads/packages/

1. Apache Tomcat 공식 사이트 접속 

https://tomcat.apache.org/

2. Apache Tomcat 공식 사이트 → Download → Tomcat 8 마우스로 클릭

3. Tomcat 8 Software Downloads → 8.5.75 → zip 파일 다운로드

※ C:\ 경로 안에 새로 생성한 폴더 안에 압축 해제할 것 

EX) C:\TEST\apache-tomcat-8.5.75

4. Eclipse 실행 후 우측 상단에 Java EE 아이콘 마우스로 클릭

5. Eclipse 하단에 Servers 탭 → 빈 공간에 마우스로 우클릭 → New → Server

6. New Server → Apache 선택

7. New Server →  Apache → Tomcat v8.5 Server → Next

8. 설치할 디렉토리 설정

- Tomcat installation directory : apache-tomcat 압축 해제한 경로로 설정

EX) C:\TEST\apache-tomcat-8.5.75

- JRE : jdk-8.0.312.7-hotsopt 설정

9. Apache Tomcat Server 연동 완료 → Server  → Tomcat v8.5 Server at localhost [Stopped, Republish] 더블 클릭

10. 3가지 수정

Server Locations 

1. Use Tomcat installation (takes control of Tomcat installation) 체크 

Use custom location (does not modify Tomcat installation) - 수동으로 경로 설정

2. Deploy path : apache-tomcat-8.5.75\webapps 경로 설정

ex) C:\test\apache-tomcat-8.5.75\webapps

Ports

3. Port Name : HTTP/1.1  / Port Number : 8090으로 수정

11. Windows → Web Browser → 3 Chrome 마우스로 클릭

12. http://localhost:8090 접속 여부 확인

 

 출처

 

 

+ 강의 교재

반응형

'AI Bootcamp > HTML' 카테고리의 다른 글

[HTML] DOM TREE  (0) 2022.01.26
[HTML] Eclipse에서 HTML 시작  (0) 2022.01.25