728x90

시간초과 및 일부 테스트 케이스를 실패했다. 반복문을 돌면서 음수면 reset 하는 방식으로 풀 수 도 있다.

import copy
 
 
def solution(s):
    answer = 0
 
    temp1 = copy.deepcopy(s)
    temp2 = copy.deepcopy(s)
 
    #  1 로 시작
 
 
    for i in range(0,len(s)):
        if i%2==0:
            temp1[i] = -temp1[i]            
        else:
            temp2[i] = -temp2[i]
 
 
    dp1 = [0] * len(s)
    dp2 = [0] * len(s)
 
    dp1[0] = temp1[0]
    dp2[0] = temp2[0]
 
    # 부분 수열 구하기
 
 
    for i in range(1,len(dp2)):
 
        dp1[i] = dp1[i-1] + temp1[i]
 
        dp2[i] = dp2[i-1] + temp2[i]
 
 
    answer1 = 0
    answer2 = 0
 
    for i in range(0,len(dp1)):
 
        for j in range(i,len(dp1)):
 
            if -(dp1[i]-dp1[j]) > answer1:
                answer1 =  -(dp1[i]-dp1[j])
 
    for i in range(0,len(dp2)):
 
        for j in range(i,len(dp2)):
 
            if -(dp2[i]-dp2[j]) > answer2:
                answer2 =  -(dp2[i]-dp2[j])
 
 
 
 
 
    return max(answer1,answer2)
728x90
728x90

개념

 

- 동적 콘텐츠를 지우너하는 웹 페이지를 개발하기 위한 기술 

- HTML 코드에 <% ~ %> JSP 태그를 사용해서 Java 코드를 삽입할 수 있다.

- 사용자의 입력 수집, DB 접근 가능

 

장점

 

- HTML 페이지 자체에 동적 요소를 포함할 수 있다.

- 서버가 처리되기 전에 항상 컴파일된다.

 

 

JSP 처리 순서

 

- 브라우저는 웹 서버에 HTTP 요청 보냄

- JSP 엔진으로 전달

- JSP 페이지를 로드하고 서블릿 콘텐츠로 변환

- JSP 엔진은 서블릿을 실행 가능한 클래스로 컴파일 후 서블릿 엔진으로 요청 전달

- 서블릿 엔진이 서블릿 클래스 로드 후 실행

- 웹 브라우저는 동적 HTML 페이지 처리

 

JSP 라이프 라이클

 

- JSP 컴파일

- JSP 초기화

- JSP 실행

728x90
728x90
const axios = require("axios"); //특정  URL  삽입 시 URL html 태그 가지고
const cheerio = require("cheerio");
var scanf = require('scanf');
 
 
// HTML 코드를 가지고 오는  함수
const getHTML = async(keyword) => {
  try{
    return await axios.get("https://search.naver.com/search.naver?where=news&ie=UTF-8&query=" + encodeURI(keyword)) //""안에는 URL 삽입
  }catch(err) {
    console.log(err);
  }
}
 
 // 파싱 함수
const parsing = async (keyword) => {
  const html = await getHTML(keyword)
  const $ = cheerio.load(html.data);// 가지고 오는 data load
  const $titlist = $(".news_area");
 
  let informations = [];
  $titlist.each((idx,node) => {
    const title = $(node).find(".news_tit").text();  
 
    informations.push({
      title: $(node).find(".news_tit:eq(0)").text(), // 뉴스제목 크롤링
      link: $(node).find(".info_group > a:nth-child(3)").attr('href') // url 링크 크롤링
 
    })
 
  }); //for문과 동일
 
  return informations;
}
 
(async function(){
  const news = await parsing("호날두");
 
  news.forEach(function(news) {
    console.log(news.title);
    console.log(news.link, '\n');
 
});
 
  })();
 
 
728x90

'🟢 디지털 하나路 > Assignment' 카테고리의 다른 글

과제1_조 선정 및 기획  (0) 2023.05.04
728x90

list로 하니 채점이 오래 걸려서 deque 로 바꾸어서 해결했다. ')' 가 나왔을때 answer+=1 을 해주는 게 중요했다. 

import sys
from collections import deque
 
 
k = deque(list((sys.stdin.readline())))
 
answer = 0
index = 0
 
while k:
 
    if len(k)==1:
 
        break
 
 
 
 
    if k[0]=='(' and k[1]==')':
 
        # 발사
 
        answer += index
        k.popleft()
        k.popleft()
 
    else:
 
 
        if k[0] =='(':
 
            index+=1
            k.popleft()
 
 
        else:
 
            index-=1
            answer+=1
 
            k.popleft()
 
 
print(answer)
 
 
 
 
 
728x90
728x90

heapq 로 구현을 했고 heapq 의 사용법을 다시 정리해야 겠다. 

import sys
from collections import deque
import heapq
 
def check(k):
 
    answer = 0
 
 
    heapq.heapify(k)
 
    while k:
 
        if len(k)==1:
 
            break
 
        a = heapq.heappop(k)
        b = heapq.heappop(k)
 
        answer += (a+b)
 
        heapq.heappush(k,a+b)
 
    return answer 
 
 
 
 
 
 
 
T = int(input())
 
for i in range(T):
 
    q= int(sys.stdin.readline())
 
    k = list(map(int,sys.stdin.readline().split(" ")))
 
 
    print(check(k))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
728x90
728x90

테스트케이스는 통과하는데 실제로는 시간 초과가 나온다. visited 까지 만들어서도 구현을 했는데 계속 시간 초과가 나온다.

 
from collections import deque
 
def bfs(k,i,j,width,height):
 
    answer = 0
    queue = deque()
 
    dx = [1,-1,0,0]
    dy = [0,0,1,-1]
 
    queue.append([i,j])
 
    while queue:
 
        x,y = queue.popleft()
        answer += int(k[x][y])
        k[x][y]='0'
 
        for i in range(4):
            temp_x = dx[i] + x
            temp_y = dy[i] + y        
 
            if 0<=temp_x<height and 0<=temp_y<width and k[temp_x][temp_y]!='0' and k[temp_x][temp_y]!='X':
                queue.append([temp_x,temp_y])
 
    return answer
 
def solution(maps):
    answer = []
 
    width = len(maps[0])
    height = len(maps)
 
    k = [ ]
 
    for i in range(0,len(maps)):
        k.append(list(maps[i]))
 
    # 방문 한 곳은 0으로 변경하기
 
    # 반복문을 돌면서 '0' 과 'X' 가 아니면 bfs 돌리기
 
    for i in range(0,len(k)):
        for j in range(0,len(k[i])):
 
            if k[i][j]!='0' and k[i][j]!='X':
 
                answer.append(bfs(k,i,j,width,height))
 
 
 
    if len(answer)==0:
        return [-1]
    else:
        return list(sorted(answer))
 
728x90
728x90

form 데이터를 함수에 전달해주기. document 속성 이용해서 value 값 변경해주기.

getElementById 사용 시 # 사용 안해도 됌


        function plus(form){
            var answer = parseInt(form.first.value) + parseInt(form.second.value);      
   
            document.getElementById("answer_number").value = answer;
           
        }

 

728x90

'🟢 디지털 하나路 > programming' 카테고리의 다른 글

[JavaScript] 변수  (0) 2023.05.22
728x90

구글링을 통해 각 자릿수의 합을 기준으로 정렬하면 되는 것을 알고 풀었다. dict 를 이용했는데 헷갈리는 부분이 있었다. key와 value 를 한번에 받기 위해서는 items 를 이용해야 한다./ 

 

import sys
from collections import deque
from itertools import permutations
import string
import copy
 
num = int(input())
 
lists = [ ]
 
for i in range(0,num):
 
    lists.append(list(sys.stdin.readline().rstrip()))
 
lists = list(sorted(lists,key = lambda x : -len(x)))
 
alpha_temp = list(string.ascii_uppercase)
 
# 사용된 알파벳
 
alpha = { }
 
for i in range(0,len(lists)):
    for j in range(0,len(lists[i])):
        if lists[i][j] not in alpha:
            alpha[lists[i][j]] = 0
 
index = 9
 
for i in range(0,len(lists)):
    for j in range(0,len(lists[i])):
 
        alpha[lists[i][j]] += 10**(len(lists[i])-j-1)
 
a =  [ ]
 
for i,j in alpha.items():
    a.append([i,j])
 
a = list(sorted(a,key = lambda x : -x[1]))
index = 9
 
 
for i in range(0,len(a)):
 
    for j in range(0,len(lists)):
        for z in range(0,len(lists[j])):
            if lists[j][z] == a[i][0]:
                lists[j][z] = index
 
 
    index -= 1
 
 
 
answer = 0
 
 
for i in range(0,len(lists)):
 
    temp = ''
 
    for j in range(0,len(lists[i])):
        temp += str(lists[i][j])
 
    answer += int(temp)
 
print(answer)
 
 
 
 
 
728x90

+ Recent posts