<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>jimin__jella.log</title>
        <link>https://velog.io/</link>
        <description>꿈꾸는 중입니다 :)</description>
        <lastBuildDate>Mon, 08 Feb 2021 08:34:22 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. jimin__jella.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/jimin__jella" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[Python] 파이썬  package 한번에 install]]></title>
            <link>https://velog.io/@jimin__jella/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-package-%ED%95%9C%EB%B2%88%EC%97%90-install</link>
            <guid>https://velog.io/@jimin__jella/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-package-%ED%95%9C%EB%B2%88%EC%97%90-install</guid>
            <pubDate>Mon, 08 Feb 2021 08:34:22 GMT</pubDate>
            <description><![CDATA[<p>python 개발하여 공유할 때(github) 한 번에 설치 할 수 있는 간단한 방법이 있습니다.
requirements.txt 파일에 프로젝트에 사용된 패키지 모듈과 버전을 저장하고 이를 활용하는 방식입니다.</p>
<hr>
<p>⭐<strong>root에서 패키지 정보 저장하는 requirements.txt 생성</strong></p>
<div style = "background-color:black; color:white; border-radius:3px;"
  pip freeze > 

<p>   $  pip freeze &gt; requirments.txt</p>
 </div>




<p>freeze 명령어를 사용하면 아래와 같이 package info가 저장된 requirements.txt이 생성됩니다.
<img src="https://images.velog.io/images/jimin__jella/post/009c2dc3-3250-4582-9fee-4e737d39fbe9/image.png" alt=""></p>
<p>⭐<strong>requirements.txt를 사용해 패키지 설치</strong></p>
<div style = "background-color:black; color:white; border-radius:3px;"
  pip freeze > 
pip install -r requirments.txt
  </div>


<p>소스를 공유받은 사람이 install 명령어를 통해 requirments.txt 의 package들을 한번에 설치할 수 있습니다.</p>
<hr>
<p>❗ <strong>주의</strong>  ❗ : python version은 requirements.txt 에 기록이 안되므로 따로 확인해주어야 합니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준 1978] 소수찾기]]></title>
            <link>https://velog.io/@jimin__jella/%EB%B0%B1%EC%A4%80-1978-%EC%86%8C%EC%88%98%EC%B0%BE%EA%B8%B0</link>
            <guid>https://velog.io/@jimin__jella/%EB%B0%B1%EC%A4%80-1978-%EC%86%8C%EC%88%98%EC%B0%BE%EA%B8%B0</guid>
            <pubDate>Thu, 04 Feb 2021 01:50:35 GMT</pubDate>
            <description><![CDATA[<p><img src="https://images.velog.io/images/jimin__jella/post/ee492426-08a4-43ec-bce8-6d1286e52667/image.png" alt=""></p>
<p><strong>⭐ 소스 코드</strong></p>
<pre><code>prime_list = [2,3,5,7,11,13,17,19,23,29,31,37]

# 방법 1) 시간 복잡도 O(1)

def prime(a):
    for i in prime_list:
        if a == i:
            return True
        if a % i == 0:
            return False
    return True


# 방법 2) 시간 복잡도 O(n)

def prime(num):
    for i in range(2, num//2 + 1):
        if num % i == 0:
            return False
    return True

if __name__ == &#39;__main__&#39;:
    N = input()
    num_list = list(map(int, input().split()))
    cnt = 0

    for i in num_list:
        if i == 1:
            continue
        if prime(i):
            cnt += 1

    print(cnt)</code></pre><p><strong>⭐ 풀이 과정</strong></p>
<p>문제에서 N이 1,000 이하의 자연수이므로 방법 1에서 prime_list로 소수의 목록을 유한개의 리스트로 만들었다. 37^2 = 1,369 (&gt;1000)이므로 소수를 찾기 위해 소수 37 까지 필요하다고 결론을 내릴 수 있다.
소요된 시간 복잡도는 상수이다. =&gt; O(1)
<img src="https://images.velog.io/images/jimin__jella/post/765d50ba-ffae-4425-9e36-610d123792a5/image.png" alt=""></p>
<p>방법 2는 N의 범위와 관련이 없는 소수 찾기 풀이 방법이다. 
소요된 시간 복잡도는 n/2이므로 n 이다. =&gt; O(n)</p>
<p><img src="https://images.velog.io/images/jimin__jella/post/84e308e1-0832-41d3-acef-06c2c84792db/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[백준 9613] GCD (최대공약수)]]></title>
            <link>https://velog.io/@jimin__jella/%EB%B0%B1%EC%A4%80-9613-GCD-%EC%B5%9C%EB%8C%80%EA%B3%B5%EC%95%BD%EC%88%98</link>
            <guid>https://velog.io/@jimin__jella/%EB%B0%B1%EC%A4%80-9613-GCD-%EC%B5%9C%EB%8C%80%EA%B3%B5%EC%95%BD%EC%88%98</guid>
            <pubDate>Fri, 29 Jan 2021 17:31:32 GMT</pubDate>
            <description><![CDATA[<p><img src="https://images.velog.io/images/jimin__jella/post/2690c717-2a57-4a9c-bf76-4265b9087d52/image.png" alt=""></p>
<blockquote>
<p><strong>최대 공약수 풀이에는 <a href="https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95">유클리드 호제법</a>을 사용했다.</strong></p>
</blockquote>
<p><strong>⭐ 소스코드</strong></p>
<pre><code>import itertools

#### 방법 1 #### 

def gcd(a_val, b_val):
     while b_val != 0:
         a_val = a_val % b_val
         a_val, b_val = b_val, a_val
     return a_val


#### 방법 2) recursive function ####

def gcd(a,b):
    if b == 0:
        return a
    return gcd(b, a % b)


t = int(input())
for i in range(t):
    sum = 0
    num_list = list(map(int, input().split()))
    perm = list(itertools.combinations(num_list[1:], 2))
    for i in perm:
        sum += gcd(i[0],i[1])
    print(sum)
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[백준 11654] python 내장 함수]]></title>
            <link>https://velog.io/@jimin__jella/%EB%B0%B1%EC%A4%80-11654-python-%EB%82%B4%EC%9E%A5-%ED%95%A8%EC%88%98</link>
            <guid>https://velog.io/@jimin__jella/%EB%B0%B1%EC%A4%80-11654-python-%EB%82%B4%EC%9E%A5-%ED%95%A8%EC%88%98</guid>
            <pubDate>Fri, 29 Jan 2021 17:20:58 GMT</pubDate>
            <description><![CDATA[<p><img src="https://images.velog.io/images/jimin__jella/post/eda64e0d-44ed-409c-95e5-35296da57c0f/image.png" alt=""></p>
<p>⭐ <strong>소스 코드</strong></p>
<pre><code>ascii =input()
print(ord(ascii))</code></pre><blockquote>
</blockquote>
<p>⭐ <strong>알아두면 유용한 파이썬 내장 함수</strong></p>
<blockquote>
<p>파이썬 내장 함수는 import가 필요하지 않다.
(외부 모듈을 사용할 때는 import가 필요하다)</p>
<p><strong>abs(x)</strong> : 어떤 숫자를 입력받았을 대, 그 숫자의 절댓값 돌려주는 함수
<strong>chr(x)</strong> : 아스키 코드 값을 입력받아 그 코드에 해당하는 문자를 출력하는 함수
<strong>ord(c) *<em>: 문자의 아스키 코드 값을 돌려주는 함수
*</em>dir</strong> : 객체(리스트, 딕셔너리 ...)가 자체적으로 가지고 있는 변수나 함수를 보여줌 (guide 역할)
<strong>map(f, iterable)</strong> : 파라미터 -&gt; 함수(f)와 반복 가능한(iterable) 자료형. 입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려주는 함수
<strong>oct(x) *<em>: 정수 형태의 숫자를 8진수 문자열로 바꾸어 돌려주는 함수
*</em>hex(x)</strong> : 정수 값을 입력받아 16진수로 변환하여 돌려주는 함수
<strong>round(number[, ndigits])</strong>: 숫자를 입력받아 반올림해 주는 함수
<strong>sorted(iterable)</strong> : 입력값을 정렬한 후 그 결과를 리스트로 돌려주는 함수</p>
</blockquote>
<p>참고 : <a href="https://wikidocs.net/32">점프 투 파이썬</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Python permutations, combinations]]></title>
            <link>https://velog.io/@jimin__jella/%EB%B0%B1%EC%A4%80-2309</link>
            <guid>https://velog.io/@jimin__jella/%EB%B0%B1%EC%A4%80-2309</guid>
            <pubDate>Tue, 19 Jan 2021 07:06:01 GMT</pubDate>
            <description><![CDATA[<h4 id="⭐-permutation">⭐ permutation</h4>
<p>순열 : 서로 다른 n개의 원소 중 순서를 고려하여 r개의 배열로 나열
순열 공식 : nPr = n!/(n-r)!</p>
<pre><code>from itertools import permutations

a = [10, 20, 30]
permute = permutations(a,2)
print(list(permute))

# result : [(10, 20), (10, 30), (20, 10), (20, 30), (30, 10), (30, 20)]
</code></pre><hr>


<h4 id="⭐-combination">⭐ combination</h4>
<p>조합 : 서로 다른 n개의 원소 중 순서를 고려하지 않고 r개의 배열로 나열
조합 공식 : nCr = n!/r!(n-r)!</p>
<pre><code>from itertools import combinations

a = [1, 2, 3, 4]
comb = combinations(a, 2)
print(list(comb))

# result : [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]</code></pre><hr>

<h3 id="📒-beakjoon-2309">📒 BeakJoon 2309</h3>
<pre><code>from itertools import combinations

def nanjang_hieght(nanjang):
    combi = combinations(nanjang,7)
    combi = list(combi)  # 모든 combination 결과

    for i in range(len(combi)):
        if sum(combi[i]) == 100:
            return sorted(combi[i])

if __name__ == &#39;__main__&#39;:
    height_list = []

    for i in range(9):
        height_list.append(int(input()))

    height_list = nanjang_hieght(height_list)

    for i in range(len(height_list)):
        print(height_list[i])</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[2020 교내 프로그래밍 공모전 수상후기👍]]></title>
            <link>https://velog.io/@jimin__jella/2020-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B3%B5%EB%AA%A8%EC%A0%84-%EC%88%98%EC%83%81%ED%9B%84%EA%B8%B0</link>
            <guid>https://velog.io/@jimin__jella/2020-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B3%B5%EB%AA%A8%EC%A0%84-%EC%88%98%EC%83%81%ED%9B%84%EA%B8%B0</guid>
            <pubDate>Tue, 05 Jan 2021 13:59:11 GMT</pubDate>
            <description><![CDATA[<h3 id="➰-주제">➰ 주제</h3>
<p>영상처리를 활용한 온라인 시험 부정행위 방지 서비스
POOC : prevent online &amp; offline cheating</p>
<hr>
<h3 id="➰-개발-배경">➰ 개발 배경</h3>
<p>프로그래밍 공모전의 주제는 &#39;언택트(untact)&#39; 였다.
공모전 참가할 시기가  기말고사 기간이기도 했고, 온라인 시험 부정행위 뉴스가 자주 들렸다. 이를 온라인 시험의 부정행위 방지 매뉴얼이 존재하지 않아 생기는 문제라 판단하였다. 온라인 시험 매뉴얼을 개발하고자 평소 관심이 있던 영상처리를 활용하여 &#39;온라인 시험 부정행위 방지 서비스&#39;를 개발하고자 하였다.</p>
<hr>
<h3 id="➰-개발-기간">➰ 개발 기간</h3>
<p>2020.07.06 ~ 2020.07.19</p>
<hr>
<h3 id="➰-기능">➰ 기능</h3>
<p>openCV를 활용한 &#39;face recognition&#39; Libary를 사용하여 시험 시작 전에 웹캠 화면으로 사용자 본인 확인을 진행하였다.
<img src="https://images.velog.io/images/jimin__jella/post/0326dffa-1b12-4021-8f79-6fe31761a2c5/image.png" alt=""></p>
<p>사용자의 눈동자 RGB값을 분석하여 시선을 추적한다. 
사용자의 시선이 정면이 아닌 오른쪽, 왼쪽을 향할 경우 경고 로그를 쌓았다. 
<img src="https://images.velog.io/images/jimin__jella/post/5e6e673f-9488-4aa3-bd26-336453651bbd/image.png" alt=""></p>
<p>화면에 2명 이상의 사람이 감지되었는지, 자리를 비웠는지 판별할 수 있다.
<img src="https://images.velog.io/images/jimin__jella/post/2e778d18-3dfd-4505-a2dd-70e52d94a7d5/image.png" alt=""></p>
<p>alt키, window 키, ctrl키 등 특수키를 누를 경우 경고 로그를 쌓았다. 
<img src="https://images.velog.io/images/jimin__jella/post/c01ea1be-c97f-4c2f-8903-cc501e446f49/image.png" alt=""></p>
<hr>
<h3 id="➰-사용-기술">➰ 사용 기술</h3>
<p>library : openCV
language : python
GUI framework : pyQt</p>
<hr>
<h3 id="➰-내가-맡은-부분">➰ 내가 맡은 부분</h3>
<p>나는 주로 GUI 부분을 맡았다. 이번에 pyQt라는 framework를 처음 다뤄봤는데 예상보다 잘 해낸 것 같아 뿌듯했다. 앞으로 어떤 새로운 기술을 접해도 다 할 수 있을 것같은 자신감이 들었다. </p>
<hr>
<h3 id="➰-배운-점">➰ 배운 점</h3>
<p>며칠동안 밤을 새우며 준비한 프로젝트로 당당히 1등을 하니 뿌듯함이라는 감정이 가장 크게 다가왔다. 처음 접하는 framework와 library를 공부하면서 프로젝트를 진행하는 짧은 시간에 많은 정보를 얻을 수 있었다. </p>
<p>교수님들의 피드백을 받으며 전혀 생각해보지 않았던 부분에서 질문이 나와 당황스러웠지만 발표가 끝나고 생각해보니 관련 기술을 더 찾아 볼걸하는 아쉬움이 남았다.</p>
<p>프로젝트를 진행하며 특히 영상처리, 딥러닝 분야에 관심을 갖게 되어 앞으로 공부할 방향을 찾은 것 같다. </p>
<p>이번이 처음 프로젝트, 공모전 도전 경험이라 굉장히 걱정이 많았는데, 역시 걱정보다는 지르고 보는 게 정신건강과 나의 성장에 도움이 된다😁</p>
<p>앞으로 더 열심히 배우자!!💛</p>
<p><a href="https://github.com/Ro4z/POOC">POOC github link</a></p>
]]></description>
        </item>
    </channel>
</rss>