백준 수 찾기 에 이어 백분 이분탐색 카테고리의 문제를 풀려했는데

 

'수 찾기' 문제랑 너무 비슷해서 그냥 이것도 딕셔너리로 풀어버렸다..

 

문제 

 

10816번: 숫자 카드 2

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

www.acmicpc.net

 

Solution

#숫자카드 2
N=int(input())
A={}
a=map(int,input().split())

for x in a:
    if x not in A:
        A[x]=1
    else: A[x]+=1

M=int(input())
b=map(int,input().split())

for x in b:
    if x not in A: print(0,end=' ')
    else: print(A[x],end=' ')

 

 

다음은 진짜진짜 이분탐색으로 풀어야지...

 

 

반응형

이분탐색 연습 좀 하려고 간만에 백준 사이트에 들어갔다.

 

문제:

 

1920번: 수 찾기

첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들

www.acmicpc.net

 

웬걸 연습하려는 이분탐색은 안쓰고 딕셔너리로 풀었다.. 

 

 

Solution

N=int(input())
A={}
a=map(int,input().split())

for x in a:
    if x not in A:
        A[x]=1

M=int(input())
b=map(int,input().split())

for x in b:
    if x not in A: print(0)
    else: print(1)

 

랜선자르기나 풀러 가야지,.

반응형

Git Bash에서 이런저런 실습을 해보았다. 까먹기 전에 얼른 정리!

 

 

SSH key 생성, 등록하기

 

SSH(Secure SHell) 키를 생성하면 로그인 없이 깃허브에 공개키를 등록하여 접근할 수 있다. 

 

cd ~/.ssh 명령어로 현재 로컬에 SSH가 등록되어 있는지 확인한다.

 

ssh-keygen -t rsa -b 4096 -C "example@email.com"  명령어로 SSH 키를 생성한다.

  • ssh-keygen : ssh 비대칭키 생성 명령어
  • -t rsa : 암호화 타입을 rsa 방식을 사용
  • -b 4096 : 생성할 키의 비트수 4096으로 지정, rsa 타입을 위해선 최소 768 비트가 필요하며 default로 2048 비트이다. 4096으로 더 난독화된 키를 생성한다.
  • -C “example@email.com“ : 코멘트로 일종의 주석이다. 보통 이메일 계정이나 아이디등을 입력한다.

SSH 키 생성 시 출력 화면

 

ll ~/.ssh 명령으로 SSH 키가 잘 생성되었는지 확인한다.

  • cat ~/.ssh/id_rsa.pub  명령으로 공개키를 확인 후 copy
  • github > Settings > SSH and GPG keys > New SSH key 에 추가

 


 

commit/ push/ pull/ clone

 

임의 폴더 생성(mkdir) 해당 위치에서 git init 

commit할 파일 생성

1. git add 

2. git commit (-m : 커밋 메시지)

 

git remote add 이름 git@github.com:repository.git 명령으로 원격 저장소 지정

(git remote -v 로 원격 저장소 확인)

git push -u 원격저장소 master  명령으로 로컬 작업물 > 깃허브 push

 

깃허브 작업물을 commit 하려면 pull 먼저 수행

 

git clonelocal에 작업물이 없는 상태에서 원격저장소 데이터를 가져오는 것

git pull local에 작업물이 있고, 원격저장소의 수정상태를 반영하기 위해 하는 것

 

git clone은 repository 이름으로 가져옴

 


 

Branch

 

작업 관리 = branch (master 복제 및 추가작업)

브랜치 생성 및 조회

 

git checkout 지정브랜치  명령으로 브랜치 변경

 

git merge 명령으로 브랜치 합치기 (master->b1으로 가져오기)

master로 가서 b1 합치기 

 

git push결과

 


Reference

 

Github에 push, pull을 위한 ssh키 생성 및 등록(windows10)

들어가기이 블로그는 hexo라는 정적 웹 생성기로 만들어져 있고, hexo로 만들어진 정적웹을 github 페이지에 배포하여 운영하고 있다. 여기서 gitpage로 hexo블로그를 배포하기 위해서는 hexo 블로그를

www.hanumoka.net

 

반응형

문제 :

 

코딩테스트 연습 - 체육복

점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번

programmers.co.kr

 

Solution 

import copy
def solution(n, lost, reserve):
    answer = 0
    lost.sort()
    reserve.sort()
    
    for x in copy.deepcopy(lost):
        for y in copy.deepcopy(reserve):
            if x==y:
                lost.remove(x)
                reserve.remove(y)
                break
        
    for x in copy.deepcopy(lost):
        for y in copy.deepcopy(reserve):
            if abs(x-y)==1:
                lost.remove(x)
                reserve.remove(y)
                break

    answer=n-len(lost)
    return answer

오늘 출근길에 푼 문제,,

list를 remove하면서 for문을 돌렸더니 제대로 for문이 돌지 않았다.

copy 라이브러리의 deepcopy를 이용했더니 해결,,

 

계속 75점 맞다가 lost와 reserve 학생이 같은 경우를 먼저 제거해주어야 한다는 걸 알게 되었다..!...!!!

Level 1 따린데 자존감 내려간다 따흐흑

반응형

0. 환경설정

 

MySQL, DBeaver 설치 및 연동

1. MySQL 설치 MySQL :: Download MySQL Installer Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer..

rokroks.tistory.com

 

1. Spring initializr 에서 프로젝트 생성

본인의 Java 버전에 맞게 선택 후 Dependencies에 필요한 것들을 추가한다.

 

 

 

2. build.gradle에 bootstrap 추가

1번의 프로젝트를 다운받아 build.gradle 파일의 dependensies에 bootstrap을 추가한다.

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	runtimeOnly 'mysql:mysql-connector-java'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	runtimeOnly 'org.webjars:bootstrap:4.5.0' //추가
}

 

3. src > main > resources > application.properties 추가

아래 내용을 위 파일에 추가한다.

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/test?serverTimezone=UTC&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=1234

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
  • spring.jpa.hibernate.ddl-auto : JAVA의 Entity를 참고하여, Spring Boot 실행 시점에 자동으로 필요한 데이터베이스의 테이블을 설정
    • none : 아무것도 실행하지 않음
    • create : SessionFactory 시작 시점에 Drop을 실행하고 Create를 실행
    • create-drop : SessionFactory 시작 시점에 Drop 후 Create를 실행, SessionFactory 종료 시 Drop
    • update : 변경된 Schema를 적용 (데이터는 유지)
    • validate : update처럼 Object를 검사하지만, Schema는 변경하지 않음. 변경된 Schema가 존재하면 변경사항을 출력하고 서버 종료
  • spring.datasource.url : 데이터베이스 URL

 

  • spring.mvc.view... : 웹 실행 시 아래 에러 해결

 


Reference

 

[Spring Boot] 게시판 구현 하기 (1) - 글 작성 & 글 목록 출력

이번 시간에는 Spring Boot와 MySQL를 연동하고 게시판 기능의 글 작성과 글 목록 출력을 구현해보겠습니다.

kyuhyuk.kr

 

 

[Spring] "This application has no explicit mapping for /error, so you are seeing this as a fallback." 문제 해결

Eclipse에서 다음과 같이 index.html을 만들고 main code를 실행하니 "This application has no explicit mapping for /error, so you are seeing this as a fallback." 에러 출력됨 해결책: [src/main/resource..

hororolol.tistory.com

 

반응형

원격 DB에 접속할 때는 드라이버만 있어도 되지만 로컬 DB를 사용하려면 DB를 설치해야 한다.

 

1. MySQL 설치

 

MySQL :: Download MySQL Installer

Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8.0.25 2.4M (mysql-installer-web-community-8.0.25.0.msi) MD5: 7f64b7ca2c526c359919d9db1bc8d669 | Signatu

dev.mysql.com

 

시스템 환경변수 > PATH C:\Program Files\MySQL\MySQL Server 8.0\bin 추가

cmd에서 MySQL 접속 확인 : mysql -u root -p

 

 

 

2. DBeaver 설치

 

Download | DBeaver Community

Download Tested and verified for MS Windows, Linux and Mac OS X. Install: Windows installer – run installer executable. It will automatically upgrade version (if needed). MacOS DMG – just run it and drag-n-drop DBeaver into Applications. Debian package

dbeaver.io

 


 

3. DBeaver에 MySQL 연결

※ 주의 : serverTimezone 값은 default로 비어있는데 그냥 생성 시 다음과 같은 오류가 발생한다.

(The sever time zone value ... is unrecognuzed or represents more than one time zone.)

 

 

해결 : Connection settings > Driver properties > severTimezone = UTC 입력

 

 

반응형

DOM (Document Object Model)

  • 문서 객체 모델 : 트리 형태의 프로그래밍 도구 (위>아래로 노드 쌓임)
  • HTML, XML을 프로그래밍적으로 다루기 위한 도구 (웹 페이지 문서를 표현, 저장, 조작함)
  • 문서의 논리적 구조, 문서가 접근되고 조작되는 법을 정의
  • 구조화된 노드(태그)속성, 기능(JS 함수)을 가진 객체로 표현

 

 

JS (JavaScript)

웹 페이지를 위한 프로그래밍 언어 (JIT 컴파일 PL)

DOM으로 HTML을 웹이 애플리케이션처럼 동작하는데 도움을 줌

비 브라우저 환경에서도 사용 (Node.js)

 

자바스크립트로 DOM 선택하기

  • document.querySelector('선택자') : 선택자의 정보를 통해 요소를 집어내는 함수
  • document.createElement('html요소') : 자바스크립트로 HTML 요소를 만드는 함수
  • document.body.appendChild() : body 요소 내부에 새로운 요소를 넣는 함수
var element=
document.querySelector('Head');
console.log(element.nodeName); //Head
<script> //HTML 요소를 불러온 뒤에 아래 함수 실행됨
    window.onload=function(){ //h1 태그 가진 html 요소 생성
    var heading=document.createElement('h1')
    heading.innerText='Hello, world'
    document.body.appendChild(heading)
    }
</script>

 

 


Reference

 

실용적인 웹 프로그래밍 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

반응형

웹 서비스에 대해 공부하기 앞서 HTML, CSS를 간략하게 짚어보자

 

HTML

마크업 언어 : 문서의 요소를 태그를 이용해 정의 (NOT PL)

브라우저에게 웹 페이지를 어떻게 구성할지 기술하는 언어

 

문법

  • 중첩태그 가능
  • 블록 단위 요소 (display:block) : 항상 새 줄에서 시작, 가능한 너비 모두 차지
  • 인라인 요소 (display:inline) : 새 줄에서 시작 X, 필요한 만큼만 너비 차지
  • 인라인 블록 (display:inline-block) : 새 줄에서 시작 X (인라인특징), 너비와 높이 가짐 (블록특징)

 

1) 블록 요소 

웹 페이지를 나타내는 구조적 요소 (단락, 목록, 탐색메뉴, 바닥글, ...)

인라인 요소 안에 중첩불가, 다른 블록 요소 안에 중첩가능

 

2) 인라인 요소 

블록 레벨 요소 안에 존재 (주로 텍스트의 구문 : <a>, <em>, <strong>, ...)

 

블록 예제

 

인라인 예제
인라인 블록 예제

 

- Void 요소

Single tag, 닫는 태그 없음. 문서에 삽입/ 첨부하는 경우 (<img>, <embed>, ...)

<img src="sample.png">

 

- 속성

요소에 대한 추가정보 제공 (id, disabled, onclick, ....)

<div id="hello"></div>

 

<html> : 모든 html 요소를 감싸는 역할

<meta> : 웹 페이지의 charset 지정 (utf-8)

주석 : <!-- ○ -->

 


CSS

<style></style> : HTML 콘텐츠와 외부 스타일을 구성 

 

선택자와 선언부로 구성

  • 선택자 : h1 
    • 조상 자손 선택자 : ul 아래의 모든 태그 선택, 적용 (ul li)
    • 부모 자식 선택자 : 선택한 것 바로 밑의 선택자만 선택, 적용 (#lecture>li)
    • 동시 선택자 : 해당하는 두개의 태그를 동시 선택, 적용 (ul, ol)
  • 선언부 : {color: blue; font-size: 12px; }

선택자와 선언부

 

- id속성 : 유일한 하나의 HTML element에만 적용 ( #id값 )

 

- class 속성 : 같은 클래스 내 모든 요소들 속성 변경 ( .id값 )

 


Reference

 

실용적인 웹 프로그래밍 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

반응형

IBM API Connect

  • 클라우드 간 API 작성, 관리를 수행할 수 있는 확장형 API 플랫폼 (보안성/검증성/확장성/직관성/유연성/강력성)
  • 애플리케이션과 데이터가 있는 모든 위치에서 작동 가능 (예: 온프레미스, 컨테이너, 클라우드)
    • Docker 컨테이너 지원가능한 모든 위치에 배치됨
    • 멀티클라우드 환경에서 서비스와 데이터를 안정적으로 관리, 보호

 

  • 고급기능
    1. API 관리자 : 내부 용도로 API를 관리하거나 REST 또는 SOAP API로서 서비스를 외부에서 수익화하고 관리할 수 있게 하는 사용자 인터페이스
    2. IBM DataPower Gateway : 엔터프라이즈 레벨에서 API 트래픽, 상호작용을 보호, 제어, 로깅/ 컨테이너 지원
    3. 개발자 포털 : 회사 브랜드 포털을 이용해 API를 애플리케이션 개발자와 공유. 개발자는 API 검색, 등록, 연관 애플리케이션 등록, 배치가능
    4. 개발자 툴킷 : API, LoopBack® 애플리케이션을 모델링, 개발, 테스트
    5. 클라우드 관리자 : 간단한 사용자 인터페이스를 이용해 API Connect 온프레미스 클라우드를 구성, 관리, 모니터링

 

 

DataPower Gateway

  • API connect의 보안 구현
  • 완성도/효율성/안전성
  • 공통 보안, 트래픽, 중개 및 가속화 기능을 중앙 집중화
  • 드래그앤드롭 보안 정책

  • 주요정책
    1. 레코드의 시스템 과부하를 방지하는 속도 제한
    2. 데이터 변환(예: JSON에서 XML로 변환)을 위한 중개 정책
    3. 올바른 서비스로 수신 트래픽을 지능적으로 라우팅하는 트래픽 관리
  • IBM CloudTM 또는 OVA나 Docker 파일이 설치될 수 있는 모든 위치에서 실행 가능
    1. 써드파티 퍼블릭 클라우드 (예: Amazon Web Services, Microsoft Azure, Google Cloud Platform)
    2. 온프레미스 데이터 센터 (예 : IBM Cloud Private)
    3. 프라이빗 클라우드 (예 :  표준 Kubernetes)

 


Reference

www.ibm.com/kr-ko/cloud/api-connect/secure

 

반응형

'CS Interview > etc' 카테고리의 다른 글

마이크로 서비스란 (MSA) - 모놀리식 아키텍처, API Gateway vs ESB  (0) 2021.06.16
REST API 특징과 보안  (0) 2021.06.15
JavaScript  (0) 2021.05.06
React & Vue  (0) 2021.05.06
RESTful, TDD, immutable, MVC  (0) 2021.05.04

문제 : 

 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는

programmers.co.kr

 

Solution

def solution(answers):
    answer = []
    s1=[1,2,3,4,5]
    s2=[2,1,2,3,2,4,2,5]
    s3=[3,3,1,1,2,2,4,4,5,5]
    
    c1=c2=c3=0 #맞은 문제 수
    p1=p2=p3=0 #위치
    
    for i in range(len(answers)):
        if answers[i]==s1[p1]:c1+=1
        if answers[i]==s2[p2]:c2+=1
        if answers[i]==s3[p3]:c3+=1
        
        p1+=1
        p2+=1
        p3+=1
        
        if p1==len(s1):p1=0
        if p2==len(s2):p2=0
        if p3==len(s3):p3=0
    
    maxscore=max(c1,c2,c3)
    if c1==maxscore:answer.append(1)
    if c2==maxscore:answer.append(2)
    if c3==maxscore:answer.append(3)
    
    return answer

반응형

+ Recent posts