Hello World! 32

백준 11719 그대로 출력하기 2 - python

11719번: 그대로 출력하기 2 (acmicpc.net) 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 문제 ) 입력 받은 대로 출력하는 프로그램을 작성하시오. 풀이 ) 두가지 방법으로 해결해보았다! 이 문제를 풀고 파이썬의 특성을 알게 되었고, 다음에 이런 문제가 나오면 바로 풀 수 있을 것 같다 ! + EOFerror) 더이상 읽어들일 것이 없을 때 발생하는 에러 프로그램에서 발생하는 예외상황 모든 명령문을 try 에 넣어주고 오류/예외를 처리해줄 핸들러 except 를 명시하자! ..

백준 1476 날짜계산 - python

1476번: 날짜 계산 (acmicpc.net) 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 문제 ) 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는..

백준 2309 일곱 난쟁이 - python

2309번: 일곱 난쟁이 (acmicpc.net) 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 유형 ) 브루트포스 -> 브루트 포스란? '모든 경우의 수를 해보는 방법' -> 나는 for문으로 다 돌려 확인해보았다 풀이) 아홉 난쟁이의 합 (sum) 을 구하고 거기서 두명 난쟁이의 키를 빼서 100이 되면 일곱 난쟁이가 완성된다!

백준 2751 수 정렬하기 2 - python

2751번: 수 정렬하기 2 (acmicpc.net) 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 오답) 같은 코드로 제출했는데 python3 으로 제출했을 때와 pypy3으로 제출하였을 때 정답 여부가 갈렸다. 그 이유는 pypy3 은 python3 보다 실행 속도가 더 빠르기 때문인데, 보통 pypy3은 파이썬3의 문법을 그대로 지원한다. 삼성전자 코테에서는 pypy3을 채점에 이용하는데 지원자가 python3 으로 제출하면 pypy3 으로 채점이 된다. 반복문이 많을수록 pypy3과 py..

백준 11650 좌표 정렬하기 - python

11650번: 좌표 정렬하기 (acmicpc.net) 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 풀이) array 를 sort 해주면 되는 문제 기준이 두개일 때, lambda 를 써주면 쉽게 해결 가능하다. 튜플로 순서를 보내주면 됨 ! 여기서 lambda 는 인공지능 분야에서 쓰이는 Lisp 언어에서 물려 받은 것이다. 함수를 한줄로 만들게 해주는 것 lambda 인자 : 표현식 으로 써주면 된다. 예를들어 , mylist 가 다음과 같이 정의되어 ..

Code Up 1096 : 바둑판에 흰 돌 놓기 - python

문제 기숙사 생활을 하는 학교에서 어떤 금요일(전원 귀가일)에는 모두 집으로 귀가를 한다. 오랜만에 집에 간 영일이는 아버지와 함께 두던 매우 큰 오목에 대해서 생각해 보다가 "바둑판에 돌을 올린 것을 프로그래밍 할 수 있을까?"하고 생각하였다. 바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때, n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보자. **참고 가로번호, 세로번호를 사용할 수 있는 2차원 배열을 사용하면 이러한 형태를 쉽게 기록하고 사용할 수 있다. 물론 더 확장한 n차원 배열도 만들 수 있다. 입력 바둑판에 올려 놓을 흰 돌의 개수(n)가 첫 줄에 입력된다. 둘째 줄 부터 n+1 번째 줄까지 힌 돌을 놓을 좌표(x, y)가 n줄 입력된다. n은 10이하의 자연수이고 x, y..

CodeUp 1091 : 수 나열하기3 - python

파이썬으로 코딩테스트를 준비하며, 코드업에 있는 100문제를 풀어보았다. 문제를 풀어보며 파이썬의 기초에 대해 다시 한 번 정리할 수 있었다. 문제 ) 예를 들어 1 -1 3 -5 11 -21 43 ... 은 1부터 시작해 이전에 만든 수에 -2를 곱한 다음 1을 더해 다음 수를 만든 수열이다. 시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때, n번째 수를 출력하는 프로그램을 만들어보자. 입력) a, m , d, n * 예시 > 1 -2 1 8 출력) n 번째 수* 예시 > -85 나의 풀이 방법 ) 먼저 예시를 보고 첫째항을 a 라고 하고 둘째 셋째, 넷째항은 각각 a2, a3, a4 이라고 가정했다. 그리고 식을 차례로 써보았다. a= 1 a2= 1 * ..

프로젝트 관리와 계획

프로젝트를 진행할 때 작업 수행에 필요한 여러가지 자원, 인력, 비용, 재료, 기술 등을 가장 효과적으로 사용하여 프로젝트의 목표를 달성해야한다. 하지만 개발 대상은 눈에 보이지 않아 진행 상황을 판단하기 어렵고 조직마다 프로세스도 다를 뿐 아니라 기술 발전이 매우 빠르기 때문에 '프로젝트의 관리' 가 필요하다. 프로젝트를 관리하기 위한 활동은 4가지로 분류할 수 있다. 계획, 조직, 모니터링, 조정 1. 먼저 프로젝트를 시작하면, 목표를 세우고 가치와 위험을 이해해야한다. 지속 가능성이 있는지 , 기술적인 어려움, 불확정성이 있는지 등등 그렇다면 이러한 가치는 어떻게 평가할까? 가치를 평가하는 방법에는 5가지가 있다. 1) 투자 회수 기간 : 투자금과 같은 금액을 벌어들이는데 걸리는 기간이 얼마일지 2..

Hello World!/공부 2020.11.13

리팩토링이란?

프로그램은 오늘 당장 기능이 실행되는 것도 중요하지만, 내일을 대비한 코딩을 해야한다. 리팩토링이란 이미 존재하는 코드를 안전하게 개선시키는 기술이다. 코딩 스타일 뿐만 아니라 성능, 구조 등을 개선시키는 과정으로 가독성을 높이고 유지보수를 편하게 하기 위한 것이다. 리팩토링을 하면, 1) 기존의 코드를 보다 효율적이고 통제된 방법으로 점진적으로 재구성 할 수 있다. 2) 리팩토링 후 바로 test 과정을 거쳐 시스템의 신뢰도가 향상된다. 3) SW를 보다 이해와 수정이 쉽게 만든다. 4) 겉으로 보이는 동작의 변화 없이 내부 구조를 변경한다. 리팩토링의 목적은, 1) 디자인 개선 2) 이해 쉽게 만듦 3) 버그 찾기 쉽게 도와줌 4) 빠른 프로그래밍을 가능하게 함 리팩토링의 예를 들자면 반복 사용되는 ..

Hello World!/공부 2020.11.13

네트워크 기초 TCP/IP, IPv4 와 IPv6

TCP/IP 프로토콜 프로토콜이란? 컴퓨터와 컴퓨터 사이에 데이터를 어떻게 주고받을 것인지를 정의한 통신 규약 즉, 같은 프로토콜을 사용하는 기기 간에는 통신이 가능하다. 인터넷에서는 TCP/IP 프로토콜에 따라 데이터를 주고받는다. TCP/IP 프로토콜은 5계층으로 구성되어 있는데, 계층별로 다양한 서비스를 제공하는 프로토콜이 지원된다. 계층 프로토콜 전송단위 응용 계층 ) 서비스 제공 응용 프로그램 DNS, FTP, SSH, HTTP, 텔넷 메시지 전송 계층) 응용프로그램으로 데이터전달, 데이터 흐름 제어 전송 신뢰성담당 TCP , UDP 세그먼트 네트워크 계층) 주소 관리 및 경로 탐색 IP, ICMP 패킷 링크 계층 ) 네트워크 장치 드라이버 ARP 프레임 물리 계층 )케이블 전송매체 구리선, 광..

Hello World!/공부 2020.10.06