애너그램이란?

문자열에 배열을 바꾼 것 = 정렬(sorting) 했을 경우 같아지는 문자열

def anag(a, b):
    if(len(a) == len(b)):
        a = ''.join(sorted(a)).lower()
        b = ''.join(sorted(b)).lower()
        if(a == b):
            print('같음')
        else:
            print('다름')
    else:
        print('다름')

a = input('첫번째 문자열 : ')
b = input('두번째 문자열 : ')

anag(a, b)

 

두 값을 입력 받은 후 글자 수 길이를 비교 함

그 후 join을 사용해 문자열을 리스트로 변환 시키고

정렬 및 lower()를 이용해 대문자를 소문자로 변경시켜 준다.

그 후 두 정렬 된 값을 변환하여 비교

 

# 최대공약수(유클리드 호제법 사용)
def ucle_max(a, b):
    if b>a:
        temp=a
        a = b
        b = temp
    while b> 0:
        c = b
        b = a % b
        a = c
    return a

# 최소공배수(두 수를 곱한 후 최대공약수를 나눌 경우 최소공배수가 됨)
def ucle_min(a, b):
    return a * b // ucle_max(a, b)

n1 = int(input('첫번째 수 입력 : '))
n2 = int(input('두번째 수 입력 : '))

print('최대공약수 : {0}'.format(ucle_max(n1, n2)))
print('최소공배수 : {0}'.format(ucle_min(n1, n2)))

 

유클리드 호제법

큰수에서 작은수의 나머지를 구함

(큰수 / 작은수)의 나머지

두 수의 작은수와 구해진 나머지를 나누 나머지를 구함

(작은수 / 구해진 나머지)의 나머지를 구함

반복하다가 나머지가 0일 경우 그 수가 최대공약수

 

최소공배수는 두 수를 곱한 후 구해진 최대공약수를 나눈다.

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

[Python] 애너그램(Anagram)  (0) 2020.12.17
(CodeUp/Python) 3321 : 최고의 피자  (0) 2019.07.26
(CodeUp/Python) 3301 : 거스름돈  (0) 2019.07.26
(CodeUp/Python) 3120 : 리모컨  (0) 2019.07.26
(CodeUp/Python) 2001 : 최소 대금  (0) 2019.07.26
# random 함수 이용해서 난수 발생 후 중복일 경우 true 없을 경우 false 반환
import random

# s:최소값 e:최대값 n:반복수
def double_ck(s, e, n):
    numList = []
    ck = []
    switch = 'False'
    for i in range(n):
        num = random.randint(s,e)
        if(num in numList):
            switch = 'True'
            if(num not in ck):
                ck.append(num)
        numList.append(num)
    print('랜덤 발생 값\n',numList)
    print('중복 결과 : ',switch)
    print('중복 된 값 : ',ck)


double_ck(1, 100, 10)

1~10까지의 숫자를 랜덤 함수를 이용해 난수 발생 후에

10번의 반복 후 중복 되는 값이 있을 경우 

'True' 반환 없을 경우 'False' 반환

중복 된 값 확인

 

import math

# for문 이용
def fact1(n):
    if n < 2:
        return 1
    else:
        result = 1
        for i in range(1, n+1, 1):
            result *= i
    return result

# 재귀함수 이용
def fact2(n):
    if n < 2:
        return 1
    else:
        return n * fact2(n-1)

# math 함수 이용
def fact3(n):
    return math.factorial(n)

# 메모이제이션 이용
def fact4(n):
    factList = []
    if n < 2:
        return 1
    else:
        for  n in range(1, n+1):
            factList.append(n * fact2(n-1))
    return factList

a = int(input('n번째 값 입력 : '))

print("#for 이용")
print("n = {0} \nvalue = {1}".format(a,fact1(a)))
print()
print("#재귀함수 이용")
print("n = {0} \nvalue = {1}".format(a,fact2(a)))
print()
print("#math 함수")
print("n = {0} \nvalue = {1}".format(a,fact3(a)))
print()
print("#메모이제이션 함수")
print("n = {0} \nvalue = {1}".format(a,fact4(a)))

 

 

#재귀함수를 이용한 피보나치
def fibo1(n):
    if n < 3:
        return 1
    return fibo1(n-1) + fibo1(n-2)

#for문을 이용한 피보나치
def fibo2(n):
    if n < 3 :
        return 1
    else:
        a, b = 1, 1
        for i in range(1, n):
            a,b = b, a+b
    return a

#메모이제이션을 이용한 피보나치
def fibo3(n):
    fibList = [1, 1]
    if n < 3:
        return 1
    else:
        for i in range(2,n):
            fibList.append(fibList[i-1] + fibList[i-2])
    return fibList

a = int(input())

print("#재귀함수 이용")
print("n = {0} \nvalue = {1}".format(a,fibo1(a)))
print()
print("#for문 이용")
print("n = {0} \nvalue = {1}".format(a,fibo2(a)))
print()
print("#메모이제이션 이용(결과값을 리스트에 저장해 반환)")
print("n = {0} \nvalue = {1}".format(a,fibo3(a)))

<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<jsp:useBean id="now" class="java.util.Date" />
<fmt:formatDate var="year" value="${now}" pattern="yyyy" />
<p>Current year: ${year}</p>
<p>Previous year: ${year - 1}</p>
<c:if test="${param.login eq 'true'}">
  <div class="login">로그인 되었습니다.</div>
</c:if>
var path = "${pageContext.request.contextPath}";
var result = '<c:out value='${result}' />';

 

1. JSTL이란?

HTML 코드 내에 java코드인 스크립틀릿 <%= student%>${student}

<%=if%>문을 <c:if>

<%=for%>문을 <c:forEach>로 대체하여 사용한다.

뷰와 비즈니스로직의 불리로 인해 현재 JSTL을 많이 사용하는 추세

 

2. JSTL

JSTL은 라이브러리이기 때문에 사용하기전에 core를 header에 추가해주어야 한다.

<% @taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

 

+ Recent posts