Coding Challenge

    html canvas로 별찍기

    html canvas로 별찍기

    백준 별찍기문제를 canvas로 그려봤습니다 https://www.acmicpc.net/problem/2448 이 문제는 재귀방식으로 세모를 그리고 위, 아래왼쪽, 아래오른쪽에 그림 그리기를 이어나가는 방식입니다. 그렇다면 재귀 깊이를 n이라고 했을때 3(n-1)번 재귀가 들어간다는걸 알 수 있습니다. 그런데 무한정 재귀를 들어 갈수는 없으니 몇번 재귀로 이러한 그림을 그릴지 input을 넣을 수 있게 inputbox를 만들어주도록 합시다. 재귀문에 넘겨줄 데이터는 삼각형의 꼭지점중 하나의 (x, y) 좌표, 한변의 길이, 몇번 재귀를 들어갈건지입니다. 우리가 그릴건 정삼각형이기 때문에 sin60, cos60과 한변의 길이를 이용하여 나머지 두 좌표도 구할수 있습니다. 아래는 전체 소스입니다

    파이썬에서 조건문을 사용하기 위한 and, or 이해하기

    파이썬에서 조건문을 사용하기 위한 and, or 이해하기

    타언어에서 &&, ||로 표현 되는 and, or 연산자에 대해서 알아보겠습니다. 연산자 우선순위는 and > or 로 되어 있지만 (곱셈, 나눗셈), (덧셈, 뺄셈)처럼 연산하는 순서가 바뀌어도 결과값은 같에 나옵니다. and, or과 비트연산자 &, | 의 다른점 and, or은 논리값을 반환, &, |은 연산의 결과를 나타냅니다. x > 5 and x 5) & (x 5 and x 5) & (x < 10)) print(4 and 10) print(4 & 10) x ..

    파이썬 문자열(str)을 이용해 변수(variable)값 출력하기

    파이썬 문자열(str)을 이용해 변수(variable)값 출력하기

    많은 초심자분들이 파이썬을 처음 시작하고 리스트와 딕셔너리를 알기전에 a_0, a_1, a_2, ... 이렇게 변수를 만들고 반복문으로 변수에 접근하려 합니다. eval 이용 eval은 문자열로 된 코드를 인터프리터를 통해 실행해주는 함수입니다. 정말 편한것 같은 함수이지만.. 만약 eval안에 실행되는 문자열이 외부에서 들여온 코드일 경우, 외부 사람이 함부로 저희가 만든 프로그램에 코드로 간섭을 할 수 있는 보안에 취약점이 존재합니다. 그렇기 때문에 최대한 지양해야된 함수임을 미리 알아두시면 좋을것 같습니다. eval의 취약점 입력 : __import__ ( 'os').system('whoami') # eval 함수의 취약점 command = input() eval(command) eval함수 사용 ..

    pyqt 창끼리 데이터 전달

    pyqt 창끼리 데이터 전달

    파이썬 pyqtSignal을 이용하여 데이터를 전달해보겠습니다. 실행 미리 보기 코드설명 class NewWindw(QtWidgets.QWidget): command = QtCore.pyqtSignal(str) QtCore.pyatSignal(str)은 str형태의 데이터를 전달하는 통로라는것을 의미합니다. 다른 자료형을 전달할때는 바꿔주면 됩니다. self.inputbox.returnPressed.connect(self.sendCommand) @QtCore.pyqtSlot() def sendCommand(self): msg = self.inputbox.text() self.command.emit(msg) self.inputbox.setText("") 데이터를 보내주는 함수입니다. command.emit..

    판다스로 여러개의 csv파일 수정하기

    판다스로 여러개의 csv파일 수정하기

    먼저 임시 파일 몇개를 만들어보자! 이처럼 number를 컬럼명으로하여 만들어 주자 나같은 경우는 tree가 이렇다 지정 폴더 아래 파일들 위치를 찾아준다 os.walk를 이용하여 files폴더 아래에 있는 모든 파일을 읽어들여 준다! endswith은 파일의 확장자를 반환한다. 튜플 형태로 여러개의 확장자를 전달 가능하다. import os path = "files\\" # os.listdir(path) 특정 폴더만 하는 경우 for root, dirs, files in os.walk(path): # 해당 폴더 아래 있는 모든 파일 탐색 for file in files: if file.endswith((".csv", ".xlsx")): # 찾는 확장자 print(os.path.join(root, fil..

    [소스공유] C++로 엘리베이터 구현하기

    [소스공유] C++로 엘리베이터 구현하기

    작년에 멋도 모르고 열심히 짰던 소스입니다 ㅋㅋ덕분에 이 프로그램을 짠 시점으로부터 저의 실력이 확 늘었던거 같아요필요한 함수 찾아보고~ 어떻게 작동하는지 알아보고 하는등 제가 과제로 이 프로그램을 짰던 만큼 소스 공유는 조심스럽네요(후배들이 내 소스를 보러올수도있잖아!) 소스가 약 2천줄 정도되는데 이걸 다 쳐보라고 하는건 무리겠죠?ㅎㅎ;; 맨마지막에 소스 올려놓겠습니다 그대로 복사해서 제출하지마시고 어떤아이디어가 사용되고 짜여졌는지 참고만 해주시면 좋겠습니다 ㅎㅎ 좀조잡하지만 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768..

    [소스공유] C언어로 만든 지뢰찾기

    [소스공유] C언어로 만든 지뢰찾기

    제가 대학교 1학년때 만들었던 지뢰찾기네요~ 기억이 새록새록그때 이거만들고 엄청 좋아했었는데 ㅎㅎ 복붙 no! 직접써가며 코드를 이해해보아요~ 실력이 금방늘꺼에요 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798#include #include #include #include void draw(int a[30][30]){ for (int i = 0; i

    [소스공유/JAVA] KBO야구경기 시뮬레이션

    [소스공유/JAVA] KBO야구경기 시뮬레이션

    중간고사 시험때 짠 소스입니다. 야구 경기 시뮬레이션 소스 입니다.각팀의 전력은 default값 기준으로 랜덤입니다. 10개팀이 있으며 한팀당 각팀이랑 16번씩 경기를 합니다.그러면 한팀당 하는 경기수는 9×16=144경기겠지요? 3루에 선수가 있을때 볼넷이면 전진안한다는데 저는 그냥 전진해서 점수를 따는 식으로 짰습니다.(야못알의 흔한 폐혜) 12345678910111213141516171819 public class Main { public static void main(String[] args) { // TODO Auto-generated method stub KBO SEASON2017 = new KBO("마린갓"); SEASON2017.KBOMenu(); } } 1234567891011121314..

    [소스공유/c언어] 후위연산자 계산기

    [소스공유/c언어] 후위연산자 계산기

    자료구조에 나오는 스택을 이용하여 만든 다항식 계산기 입니다. 1.먼저 괄호가 제대로 쳐졌는지 확인합니다. 2.후위 연산자로 바꾸어줍니다. 3.후위연산식을 통해 연산을 합니다 이 세가지를 모두 스택을 통해 함수로 구현해 보았습니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251..

    [소스공유/C언어] 다항식 연산 프로그램

    [소스공유/C언어] 다항식 연산 프로그램

    자료 구조 과제로 만들었던 프로그램 입니다. 스위치문에 대해 설명하자면1번 multTerm 다항식×다항식2번 subPoly 다항식-다항식3번 addTerm 다항식+다항식4번 delTerm 초기 입력했던 다항식 초기화5번 MultPoly 다항식×다항식 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122..