전체 글

JoE's StOrY

    [Python] 핸드폰 번호 가리기

    [Python] 핸드폰 번호 가리기

    [나의 풀이] def solution(n): return '*' * (len(n)-4) + n[-4:] [다른 풀이] def hide_numbers(s): r = "*" * (int(len(s)) - 4) return r + s[int(len(s)) - 4:] [문자열에대한 전체적인 설명] wikidocs.net/13 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net

    [Python] 자연수 뒤집어 배열로 만들기

    [Python] 자연수 뒤집어 배열로 만들기

    [나의 풀이] def solution(n): arr = list(str(n)) # string 형태로 리스트를 선언한다. arr.reverse() arr2 = [] for i in range(len(arr)): arr2.append(int(arr[i])) return arr2 [다른 풀이] def digit_reverse(n): return list(map(int, reversed(str(n)))) def digit_reverse(n): return [int(i) for i in str(n)][::-1] def digit_reverse(n): return list(map(int, list(str(n))[::-1]))

    [Python][sort][sorted] 정수 내림차순으로 배치하기

    [Python][sort][sorted] 정수 내림차순으로 배치하기

    [나의 풀이] def solution(n): list = [] x = str(n) s = "" for i in range(len(x)): list.append(x[i]) list.sort(reverse=True) for j in range(len(list)): s += list[j] return int(s) [다른 풀이] def solution(n): ls = list(str(n)) ls.sort(reverse = True) return int("".join(ls)) def solution(n): return int("".join(sorted(str(n), reverse=True))) def solution(n): answer = '' lst = [] while n > 0: r = n % 10 n = n..

    [Python][isdigit][isalpha] 문자열 다루기 기본

    [Python][isdigit][isalpha] 문자열 다루기 기본

    [나의 풀이] def solution(s): if len(s) == 4 or len(s) == 6: for i in range(len(s)): # isalpha함수는 문자열이 문자인지 아닌지를 True,False로 리턴해주고, # isdigit함수는 문자열이 숫자인지 아닌지를 True,False로 리턴해줍니다. if not s[i].isdigit(): return False return True else: return False [다른 풀이] def alpha_string46(s): return s.isdigit() and len(s) in (4, 6) def alpha_string46(s): import re return bool(re.match("^(\d{4}|\d{6})$", s)) def alph..

    [Python] 정수 제곱근 판별

    [Python] 정수 제곱근 판별

    [나의 풀이] import math def solution(n): # 121이 들어오면 144가 리턴된다 .. 즉 121은 양의 정수 11 x = math.sqrt(n) # sqrt는 루트 pow는 제곱 if x % 1 == 0: j = int(x) + 1 return pow(j, 2) # j의 2승을 의미 return -1 [다른 풀이] def nextSqure(n): sqrt = n ** (1/2) if sqrt % 1 == 0: return (sqrt + 1) ** 2 return 'no' def nextSqure(n): return n == int(n**.5)**2 and int(n**.5+1)**2 or 'no' def nextSqure(n): from math import sqrt return..

    [Python] 최대공약수와 최소공배수

    [Python] 최대공약수와 최소공배수

    [나의 풀이] def gcd(a, b): return b if a % b == 0 else gcd(b, a % b) def lcm(a, b): return int(a * b / gcd(a, b)) def solution(a, b): return [gcd(a, b), lcm(a, b)] [다른 풀이] def solution(a, b): c, d = max(a, b), min(a, b) t = 1 while t > 0: t = c % d c, d = d, t answer = [c, int(a * b / c)] return answer def solution(n, m): gcd = lambda a,b : b if not a%b else gcd(b, a%b) lcm = lambda a,b : a*b//gcd(a..

    [Python] 자릿수 더하기

    [Python] 자릿수 더하기

    def sum_digit(number): return sum(map(int,str(number))) [나의 풀이] def solution(n): n = str(n) answer = 0 for i in range(len(n)): answer += int(n[i]) return answer [다른 풀이] def sum_digit(number): return sum(map(int,str(number))) def sum_digit(number): if number < 10: return number; return (number % 10) + sum_digit(number // 10) def sum_digit(number): return sum([int(i) for i in str(number)])

    [Python] 짝수와 홀수

    [Python] 짝수와 홀수

    [나의 풀이] def solution(num): answer = '' if num % 2 == 1: answer = 'Odd' else: answer = 'Even' return answer [다른 풀이] def evenOrOdd(num): if (num%2): return "Odd" else: return "Even" def evenOrOdd(num): return "Even" if num%2 == 0 else "Odd" def evenOrOdd(num): return ["Even", "Odd"][num & 1]

    [Python] 행렬의 덧셈

    [Python] 행렬의 덧셈

    [나의 풀이] def solution(arr1, arr2): for i in range(len(arr1)): for j in range(len(arr1[0])): arr1[i][j] += arr2[i][j] return arr1 [다른 풀이] def sumMatrix(A,B): answer = [[c + d for c, d in zip(a, b)] for a, b in zip(A,B)] return answer def sumMatrix(A,B): for i in range(len(A)) : for j in range(len(A[0])): A[i][j] += B[i][j] return A import numpy as np def sumMatrix(A,B): A=np.array(A) B=np.array(B)..

    [Python] 평균 구하기

    [Python] 평균 구하기

    [나의 풀이] def solution(arr): return sum(arr)/len(arr) [다른 풀이] def average(list): return (sum(list) / len(list)) def average(list): if len(list) == 0: return 0 return sum(list) / len(list) from functools import reduce def average(list): return reduce(lambda x, y : x + y, list) / len(list)

    [Python] 직사각형 별찍기

    [Python] 직사각형 별찍기

    [나의 풀이] a, b = map(int, input().strip().split(' ')) answer='' for i in range(b): for j in range(a): answer+="*" answer+='\n' print(answer) [다른 풀이] a, b = map(int, input().strip().split(' ')) answer = ('*'*a +'\n')*b print(answer) a, b = map(int, input().strip().split(' ')) for i in range(b): for j in range(a): print('*', end='') print('') a, b = map(int, input().strip().split(' ')) print(("*" * ..

    [Python] x만큼 간격이 있는 n개의 숫자

    [Python] x만큼 간격이 있는 n개의 숫자

    [나의 풀이] def solution(x, n): answer = [] for i in range(n): a = x * i + x answer.append(a) return answer [다른 풀이] def number_generator(x, n): return [i * x + x for i in range(n)] def number_generator(x, n): return [i for i in range(x, x*n+1, x)] def number_generator(x, n): t = list(range(x, n*x+1, x)) return t

    [Python] 가운데 글자 가져오기

    [Python] 가운데 글자 가져오기

    [나의 풀이] def solution(s): if len(s) % 2 == 1: a = len(s) // 2 b = len(s) // 2 + 1 else: a = len(s) // 2 - 1 b = len(s) // 2 + 1 return s[a:b] [다른 풀이] def string_middle(str): return str[(len(str)-1)//2:len(str)//2+1] def string_middle(str): a = len(str) if a % 2 == 0 : a = (a-2) / 2 else : a = (a-1) / 2 return str[int(a) : -int(a)] def string_middle(str): leng = len(str) if leng%2==0: return str[l..

    [Python] 같은 숫자는 싫어

    [Python] 같은 숫자는 싫어

    [나의 풀이] def solution(arr): answer = [] for value in arr: if answer[-1:] == [value]: continue answer.append(value) return answer [다른 풀이] def no_continuous(s): a = [] for i in s: if a[-1:] == [i]: continue a.append(i) return a def no_continuous(s): return [s[i] for i in range(len(s)) if s[i] != s[i+1:i+2]] def no_continuous(s): a=[ v for i,v in enumerate(s) if s[i-1]!=s[i]] return a def no_continu..

    [Python] 문자열 내 p와 y의 개수

    [Python] 문자열 내 p와 y의 개수

    [나의 풀이] def solution(s): s = s.lower() countP = 0 countY = 0 for i, j in enumerate(s): print(i, j) if j == "p": countP += 1 elif j == "y": countY += 1 print(countP) print(countY) if countP == countY: return True else: return False print(solution("pPooY")) [다른 풀이] def numPY(s): return s.lower().count('p') == s.lower().count('y') from collections import Counter def numPY(s): c = Counter(s.lower())..

    [Python] 약수의 합

    [Python] 약수의 합

    [나의 풀이] def solution(n): sum = 0 for i in range(1, n + 1): if n % i == 0: sum += i return sum [다른 풀이] def sumDivisor(num): # num / 2 의 수들만 검사하면 성능 약 2배 향상잼 return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0]) def sumDivisor(num): return sum([i for i in range(1,num+1) if num%i==0])

    [Python] 서울에서 김서방 찾기

    [Python] 서울에서 김서방 찾기

    [문제 설명] String 형 배열 seoul 의 element 중 Kim 의 위치 x를 찾아, 김서방은 x에 있다는 String 을 반환하는 함수, solution 을 완성하세요. seoul 에 Kim 은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. [나의 풀이] def solution(seoul): answer = '' print('김서방은 %d에 있다' % seoul.index('Kim')) return ('김서방은 %d에 있다' %seoul.index('Kim')) solution("Kim") [다른 풀이] def findKim(seoul): return "김서방은 {}에 있다".format(seoul.index('Kim')) def solution(seoul): answer =..

    [Python] 수박수박수박수박수?

    [Python] 수박수박수박수박수?

    [문제 설명] 길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수,solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. [나의 풀이] def solution(n): answer = '' for i in range(n): if i%2 == 0: answer += '수' else: answer += '박' return answer solution(3) [다른 풀이] def water_melon(n): s = "수박" * n # s변수에 수박을 저장한다. *n 만큼. s = '수박수박수박' return s[:n] # 반환값으로 s에 있는 문자열로 3까지만 출력한다. s[:3] '수박수' s[n:] = 끝에서 부터 앞으로 n번..

    [Python] 두 정수 사이의 합

    [Python] 두 정수 사이의 합

    [문제 설명] 두 정수 a,b가 주어졌을때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solutiondmf 완성하세요. 예를 들어, a = 3, b = 5인 경우, 3+4+5=12 이므로 12를 리턴합니다. [나의 풀이] list = [] def solution(a, b): # a와 b를 파라미터값으로 받고, if a == b: c = -a else: x = b + a c = x // 2 answer = a + b + c print(answer) return answer a = int(input("a 값:")) b = int(input("b 값:")) solution(a, b) [다른 풀이] def adder(a, b): # 함수를 완성하세요 if a > b: a, b = b, a retur..

    [Python] tkinter 기본 사용법

    [Python] tkinter 기본 사용법

    # TODO : step 1 import tkinter as tk # TK 객체 생성. (기본 윈도우 객체) window = tk.Tk() # 레이블, 입력박스, 라디오버튼, 버튼 등의 기능 또는 객체를 클래스로 만들어 놔서 아래 처럼 바로 사용 할 수 있다. # 출력될 문자열을 text속성으로 지정하고, 레이블 루트를 생성해준다. # 뷰 위젯의 하나인 레이블 객체 생성. label = tk.Label(window, text='hello world') # .pack()의 함수를 사용해서 기본 윈도우 창에 객체를 붙여준다. # 위젯(레이블, 버튼)을 윈도우에 붙임. label.pack() # UI 쓰레드를 실행해서 화면에 출력. # 화면을 계속 유지 하는 함수 mainloop(). window.mainlo..

    [Python][mysql] 게시판

    [Python][mysql] 게시판

    article (package) init.py __all__=[ 'vo', 'dao', 'service', 'menu' ] dao.py import pymysql import 게시판.article.vo as vo class Dao: def connect(self): return pymysql.connect(host='localhost', user='testuser', password='testpw', db='testdb', charset='utf8') def insert(self, a): conn = self.connect() sql = 'insert into board(writer, w_date, title, content) values(%s, now(), %s, %s)' cursor = conn.cu..

    [mysql][mac] mac에 mysql 설치/삭제/재설치 하는 방법

    [mysql][mac] mac에 mysql 설치/삭제/재설치 하는 방법

    다른 사람들이 사용하는 맥이랑 내가 사용하는 맥이랑 다른건가 너무 화. 가. 난. 다. 잘 되지도 않고 심지어 다른 플랫폼이랑 연결하려고 하는데 문제가 생겨서 도저히 프로젝트 진행이 안된다.(내가 못 하는건 인정.) 그래서 생각한게 내가 mac에 mysql설치 전문가가 되자는 생각을 했따!!!!(다 뒤져써) 우선, 내 mac에 있는 mysql을 싸그리 아주 꺢끘하게 삭제 해주기로 마음 먹었다. 나는 2가지 방법으로 mysql을 설치를 했었다. (terminal과 공홈 아래에서 설명...) 왜냐면, 망할놈의 머리가 로직을 잘 모르고 말안듣는 손가락이 제멋대로 키보드 위에서 춤을 춰대서. 위와같이 검색해서 하드디스크에 있는 mysql의 모든 파일을 전부 삭제 시켰다. 맥에 터미널에 들어가서 아래와 같이 명령..

    [Network]네트워크 통신 개념

    [Network]네트워크 통신 개념

    응용계층에 있는 네트워크 바이너리를 가져와서 서버에 접속한다. 응용계층과 전송계층 사이에 소켓이 들어간다. 주로 안드로이드 앱을 작업할때에는 소켓만 건들면 된다. 위와 같이 TCP와 UDP를 socket으로 연결해준다. *TCP는 속도는 느리지만 오류 체크를 많이해서 신뢰성이 높다 UDP는 속도가 빠르지만 오류 체크는 안함, 신뢰성이 낮다. TCP와 UDP의 특징 TCP = 빨대 있음. 1. 연결 지향성 프로토콜 = 연결 수립-데이터 전송-연결 종료의 3단계로 가상의 연결 기반 서비스 둘중에 하나만 연결 끊으면 (close함수) 통신이 끊김. 비 연결 지향적 프로토콜 = 길을 수립, 만들지 않고 패킷에 목적 주소가 있으면, 그때그때 연결 해서 전송한다. HTTP = 비 연결 지향적 2. 신뢰성 = 데이터..

    [정보처리기사] [2021년] 필기, 실기 시험날짜

    [정보처리기사] [2021년] 필기, 실기 시험날짜

    www.gisafirst.com/info/schedule.php 온라인IT자격증의 시작 기사퍼스트로 대비하세요. www.gisafirst.com

    [Java][mysql][Swing] 연동한 간단한 미니 프로젝트 - GUI game - (GUI 란?)

    [Java][mysql][Swing] 연동한 간단한 미니 프로젝트 - GUI game - (GUI 란?)

    GUI란? "Graphical User Interface (그래픽 유저 인터페이스)"의 약자입니다. 흔히 "구이,규이"라고 발음합니다. 마우스로 아이콘을 클릭하며 프로그램을 작동시키는 컴퓨팅 환경을 말합니다. 요즘 컴퓨터 환경은 거의 다 GUI입니다. GUI가 아닌 프로그램은 거의 없습니다. 윈도우를 부팅하여 바탕화면이 나오면 그 자체가 전부 다 GUI입니다. 그래서 GUI의 반대되는 개념이 무엇인가가 중요합니다. 규이의 반댓말은 CLI(Command-Line Interface)입니다. 이것은 키보드로 명령어를 일일이 타이핑하여 프로그램을 사용하는 원시적인 방식입니다. GUI와 달리 CLI는 명령어를 모두 외워야 하기에 상당히 불편합니다. 다만 전문가에게는 CLI가 더 편리할 수도 있습니다. 반복되는 작..

    [Java][mysql] 자바와 mysql을 연동한 은행 프로그램

    [Java][mysql] 자바와 mysql을 연동한 은행 프로그램

    은행 프로그램을 만들었는데, 크게 2가지로 1. 고객관리 2. 통장관리 를 간단하게 만들어 봤다. 로직은 이와같이 하려고 했으나, 입출금 내역부분은 추가 하지 않았다. (업데이트 예정) 우선 고객정보와 통장정보만 만들었다. Mysql Java package [account] AccountDAO.java package account; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import dBUtil.DBUtil; public class Accou..

    [Java][DBUtil][DAO][DTO] 방식 기본 구현법

    [Java][DBUtil][DAO][DTO] 방식 기본 구현법

    DAO란 단순하게 저장만, 기능만 하는 역할을 하는 클래스라고 보면된다. DTO에서 받은 정보를 그대로 넘겨주는 역할을 한다. DTO란 가방같은 존재로 생각하면 된다. 즉, mysql에서 필요한 컬럼을 담는 클래스는 하나 만든다고 생각하면된다. 또한, 파라미터에 하나하나씩 넣기보다 하나만 넣어서 데이터를 연동하면 직관적으로도 심플하고 관리하기도 편할 것이다. DBUtil.java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class DBUtil { /* * DBUtil은 매번 메서드나 클래스에 mysql에 conne..