반응형

 

 

www.acmicpc.net/problem/1011

 

1011번: Fly me to the Alpha Centauri

우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행

www.acmicpc.net

 

 

네 달 전부터 풀지 못했던 문제를 드디어 풀었습니다 !! 유후

이 문제는 숫자의 규칙을 이용해서 풀었습니다. 그리고 확실히 파이썬으로 하니 코드가 짧고 단순해 보이는 것 같습니다. 

코딩 테스트 볼 때에 시간이 많이 단축될 것 같아요 ㅎㅎ

 

 

 

 

 

파이썬 코드

import math

n = (int)(input())

for i in range(n):
    x,y = map(int, input().split())
    diff = y-x
    if diff <= 3:
        print(diff)
    else :
        x = (int)(math.sqrt(diff))
        if diff == x * x:
            print(2 * x - 1)
        elif diff <= (x * x + x):
            print(2 * x)
        else:
            print(2 * x + 1)

 

새로 사용한 기능은 math 모듈 안의 sqrt() 라는 기능입니다.

해당 숫자의 제곱근 값을 반환해 주는 것입니다. int로 형변환이 필요합니다.

- 그리고 한 가지 더!!

input()을 받을 때에는 꼭 int형으로 변환을 해줘야 합니다. 안 그러면 str으로 인식하는 것 같습니다ㅠㅠ

 

 

 

 

 

 

반응형
반응형

 

 

 

현재 상태

목표 : 큐, 덱까지 못 푼 문제 파이썬으로 다 풀어보기 !

 

 

 

 

 

21. 11. 19 중간점검

새로운 목표 : 위상 정렬까지 단계별 다 풀기

* 동적계획법 기초 문제를 풀어 보아야 겠다

+ 추가

 

반응형
반응형

 

 

 

 

 

www.acmicpc.net/problem/10757

 

10757번: 큰 수 A+B

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

코드

a, b = map(int, input().split())
print(a+b)

 

 

파이썬에서 다룰 수 있는 제일 큰 수는 몇일까?

파이썬은 10,000자리 자연수도 자유롭게 다룰 수 있다고 한다!!

 

 

 

 

 

파이썬 정수 최대값은 몇일까? 정최몇?

파이썬 2

import sys

t1 = sys.maxint
t2 = sys.maxint+1 #int범위를 넘으면 long으로 자동으로 형 변환

print(t1)
print(t2)
print(type(t1))
print(type(t2))
9223372036854775807
9223372036854775808
<type 'int'>
<type 'long'>

 

 

 

파이썬 3

import sys

t1 = sys.maxsize
t2 = sys.maxsize+1 #이것도 type int

print(t1)
print(t2)
print(type(t1))
print(type(t2))
9223372036854775807
9223372036854775808
<class 'int'>
<class 'int'>

 

 

파이썬3부터는 maxsize 넘어가도 int형으로 인식한다.

 

 

 

 

 

반응형
반응형

 

 

www.acmicpc.net/problem/3009

 

첫 번째 방법

a, b = input().split()
arrA_.append(a)
arrB_.append(b)
arrA_ = []
arrB_ = []

for i in range(3):
    a, b = input().split()
    arrA_.append(a)
    arrB_.append(b)

for i in range(3):
    if arrA_.count(arrA_[i]) == 1:
        ansA = arrA_[i]
    if arrB_.count(arrB_[i]) == 1:
        ansB = arrB_[i]

print(ansA, ansB)

 

 

두 번째 방법

a, b = map(int, input().split())
arrA_.append(a)
arrB_.append(b)
arrA_ = []
arrB_ = []

for i in range(3):
    a, b = map(int, input().split())
    arrA_.append(a)
    arrB_.append(b)

for i in range(3):
    if arrA_.count(arrA_[i]) == 1:
        ansA = arrA_[i]
    if arrB_.count(arrB_[i]) == 1:
        ansB = arrB_[i]

print(ansA, ansB)

 

 

 

결과

 

위에 두 번이 각각 첫 번째와 두 번째 방법을 사용해서 풀이한 것입니다. 아무런 차이가 없네요!

map은 뭘까요?

 

 

 

반응형
반응형

 

 

www.acmicpc.net/problem/11653

 

11653번: 소인수분해

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

www.acmicpc.net

 

파이썬 코드

n = int(input())

idx = 2
while n != 1:
    if n % idx == 0:
        print(idx)
        n = n / idx
    else:
        idx += 1

 

C++ 코드

#include <stdio.h>

int main(void){
int n;
    scanf("%d", &n);

int idx = 2;
while(n != 1){
    if(n % idx == 0){
        printf("%d\n", idx);
        n /= idx;
    } else {
        idx += 1;
    }
}
}

 

 

결과

 

 

 

같은 로직으로 파이썬으로도 풀어보고, C++로도 풀어 보았는데 C++로 했을 때 시간이랑 메모리가 후어어ㅓ어어ㅓ얼씬 적게 드네요

왜 그럴까요?

 

 

 

 

반응형
반응형

 

 

 

 

DTO란?

  • DTO란 Data Transfer Object의 약자입니다.
  • 계층간 데이터 교환을 위한 자바빈즈입니다.
  • 여기서의 계층이란 컨트롤러 뷰, 비지니스 계층, 퍼시스턴스 계층을 의미합니다.
  • 일반적으로 DTO는 로직을 가지고 있지 않고, 순수한 데이터 객체입니다.
  • 필드와 getter, setter를 가진다. 추가적으로 toString(), equals(), hashCode()등의 Object 메소드를 오버라이딩 할 수 있습니다.

 

DTO의 예

public class ActorDTO {
    private Long id;
    private String firstName;
    private String lastName;
    public String getFirstName() {
        return this.firstName;
    }
    public String getLastName() {
        return this.lastName;
    }
    public Long getId() {
        return this.id;
    }
    // ......
}

 

DAO란?

  • DAO란 Data Access Object의 약자로 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 객체입니다.
  • 보통 데이터베이스를 조작하는 기능을 전담하는 목적으로 만들어집니다.

 

ConnectionPool 이란?

  • DB연결은 비용이 많이 듭니다.
  • 커넥션 풀은 미리 커넥션을 여러 개 맺어 둡니다.
  • 커넥션이 필요하면 커넥션 풀에게 빌려서 사용한 후 반납합니다.
  • 커넥션을 반납하지 않으면 어떻게 될까요?

ConnectionPool

DataSource란?

  • DataSource는 커넥션 풀을 관리하는 목적으로 사용되는 객체입니다.
  • DataSource를 이용해 커넥션을 얻어오고 반납하는 등의 작업을 수행합니다.

 

반응형

+ Recent posts