본문 바로가기

728x90

💻 Computer Science

(34)
[python] 백준 1018 : 체스판 다시 칠하기 입력받은 배열을 8x8씩 잘라서 '가장 체스판에 가까운' 배열을 찾는 문제이다. 일단 '잘' 입력받아서 배열로 만들어야 한다. 문자열을 입력받을때 띄어쓰기 없이 그대로 쭈루룩 입력받으므로, 각각 문자에 접근하기위해선 그들을 각 리스트의 개별 원소로 다루는게 편하다.a,b=map(int,input().split())list_whole=[]for i in range(b): #b개 열만큼 반복. 행 리스트를 전체 리스트에 append list_whole.append(list(input()))list(input())으로 받으면 문자열을 BWBWBW..와 같이 입력해도 개별 문자가 하나의 리스트 원소로 저장이된다. 아래가 출력값인데 딱 의도한대로 2차원 배열로 출력이 된다. [ ]으로 묶여있는 원소들이 하나..
[python] 백준 1546 : 평균 논리구조는 굉장히 간단한 문제이다. 입력받은값중 최댓값을 구해 모든요소에 100/최댓값 을 곱하는 계산을 수행해 평균내주면 된다. 띄어쓰기로 구분해서 입력받은 점수들을 모두 리스트에 넣어준다음 리스트의 최댓값을 구한다. 그 최댓값을 이용해 리스트의 0번째요소부터 모든 요소에 대해 계산을 해주면된다. n=int(input())score=list(map(int,input().split()))m=max(score)sum=0for i in range(n): new_score=(score[i]/m)*100 sum=sum+new_scoreprint(sum/n)리스트를 이용하면 쉽게 구현할수있는 문제이다.
[python] 백준 1259 : 펠린드롬수 정말오랫만에 .. 공부를 하기싫어 알고리즘 문제 몇개를 풀어봤다. 숫자를 입력해 회문이면 yes, 회문이 아니면 no를 출력하면된다. 그리고 0이 입력되면 종료. while문을 이용해 0이 아닌 모든 입력값을 문자열로 받은후 그냥 문자열을 뒤집어 원 문자열과 같은지 아닌지를 판단해주면된다. 회문판독할때 큐, 스택 알고리즘을 사용할수있지만 간단히 문자열을 뒤집어서 판별할수도있다. 즉, 코드에는 문자열을 뒤집어 원문과 비교해주는 펠린드롬 판독조건 과 0이라면 loop를 종료하는 조건 두개가 필요하다. while True: x=str(input()) if x=='0': break elif x==x[::-1]: print('yes') continue else: print('no') ..
[python] numpy(넘파이) 인덱싱, 배열합치기, 사칙연산, 최대최솟값 - 사용가이드 2편 지난글에 이어서 정리해봄 4. 데이터 인덱싱, 슬라이싱인덱싱은 리스트에서도 많이 다룬 개념이다. 배열이던 리스트던 요소값에 주소가 할당되는데 그 주소값을 이용해 요소값에 접근하는것을 인덱싱(indexing)이라고 한다. 넘파이 배열의 인덱싱방식은 리스트와 유사하다.import numpy as nparray_a=np.array([[1,2,3],[4,5,6]],int)array_a[0][2]위 배열에서 숫자 3을 인덱싱하려면 위와같이 할수있다. 리스트에서의 인덱싱방식과 동일하게 배열명[상위랭크1 인덱스][상위랭크2 인덱스].... 이런식으로 하면된다. 여기서 상위랭크라는것은 .. 가장 높은차원의 위치값부터 인덱싱하는것을 의미한다. 예를들어 Rank3의 3차원 텐서의경우 [평면의 인덱스][행 인덱스][열 인덱..
[python] numpy(넘파이) 배열생성, 구조 변경, 속성 - 사용가이드 1편 1. 배열생성 (array)import numpy as np array_a = np.array([1,2,3.14,4],int) 넘파이는 외부 라이브러리이기때문에 import해 사용해준다. (형식상 외부라이브러리지만 사실상 표준라이브러리처럼 사용된다..) import numpy as np는 numpy를 불러와서 앞으로 이 코드안에선 numpy를 np라는 약자로 사용할것을 선언한다. (약자는 맘대로 지어도된다.) 간단한 배열을 생성해보자. 배열생성함수는 np.array(배열정보, 타입)의 형식이다. (만약 위에서 as np를 안썼다면 numpy.array라고 길~게 써야할것이다.) 위에서처럼 배열정보를 입력해 int 타입으로 출력하면 [1,2,3,4]가 출력된다. 배열정보에서 3번째 element는 3.14..
[C++] 정수형, 실수형, 문자형 변수, + 상수선언 C++에서 변수를 선언할때는 python과 다르게 이 변수의 유형을 반드시 명시해줘야한다. 유형이라함은... 정수형인지 실수형인지 문자형인지.. 정확히 선언을 하고 시작해야한다는 것이다. 선언할때 유형을 명시하는것, 선언 방식을 제외하고는 변수의 사용은 python과 크게 다를게 없어보인다. #includemain(){ int x=5; double k=3.1415; char name[]="김성철"; printf("정수형변수 x의 값은 %d\n",x); printf("실수형변수 k의 값은 %f\n",k); printf("문자형변수 name의 값은 %s",name); }한줄한줄 천천히 보자. #include -> python에서 import ~~와 같이 모듈을 불러오는 느낌? 그정도 역할이라고 생각하면된..
[python] 백준 1021 : 회전하는 큐 target value를 리스트 제일 앞으로 가져와서 빼내야한다. 리스트 앞쪽으로 가져올때 왼쪽으로 한칸씩 옮기기, 오른쪽으로 한칸씩 옮기기 이 두 동작만을 이용한다.  논리구조를 생각해보면 입력된 target value에 대해 2,3번 동작을 동시에 실행한다. 그리고 각 target value에 대해 더 적은 수행횟수를 갖는 동작의 수행횟수를 전체 count에 더해준다. 예를들어 target value가 4,6일때 처음 큐에서 2,3번 동작을 한번씩 수행해서 각각의 수행횟수를 카운트한다. 이제 이 두 시행을 비교해주는 함수를 정의해 (이 함수에는 리스트 초기화 기능이 수반된다. 예를들어 아래의 리스트 L에대해 go_left함수를 먼저 수행했을때 반환되는 L은 원본리스트가 아니므로 go_right에 넣으..
(인공지능) 특징공간과 차원의 저주 우리가 사는 세상은 3차원이다. 가끔 이상하게 행동하는애들을 보며 쟤는 4차원이라고 한다.데이터에도 차원이있다. 그런데 얘는 우리가 3차원으로 본다면 3차원이 되고 4차원으로 본다면 4차원이되고 177차원으로 본다면 177차원이된다. 데이터의 특징을 얼마나 변수화하냐에 따라 데이터의 차원은 무한히 커질수있다. 예를들자면, 집 근처에 공공자전거 대여소가 3곳이 있다. 내가 지금부터 준비해서 나간다면 10분정도 걸리는데, 10분후 어느 대여소로 가야 자전거를 대여할수있을까? (우리동네는 자전거 물량이 넉넉하지않아 대여소에 자전거가 아예없는 경우가 허다하다.) 10분후 대여소의 자전거 대수를 예측해주는 모델을 만들고싶다. 그렇담 결과값(y)는 자전거 대수일테고 변수 x는? 대여소의 잔류자전거 대수에 영향을 미..

728x90