전체 글 82

[R] 03. 형 변환(casting)

형 변환(Casting)은 자료형의 타입을 변환하는 것을 말한다. 형 변환이 필요한 이유는 서로 다른 데이터타입끼리의 연산이 불가능 하기 때문이다. ex, 문자타입과 숫자타입 연산 불가능, 문자타입과 날짜타입 연산 불가능 (단, 날짜 타입과 숫자 타입 서로는 연산가능) 형 변환의 종류 암시적형변환(자동형변환) : 사용자가 바꾸지 않아도 내부적으로 자료형이 변환되는 경우 명시적형변환 : 사용자가 특정 함수를 사용하여 의도적으로 자료형을 변환하는 경우 자료형과 자료구조 확인하기 mode() : 데이터의 유형을 확인하는 함수 typeof() : 데이터의 유형을 확인하는 함수 더보기 - mode()와의 차이점 : mode()함수는 정수, 실수 모두 numeric(숫자형)으로 표현, typeof()함수는 정수(i..

R/R 2023.11.22

[R] 02. 인덱싱(indexing)

인덱싱(indexing) = 색인이란 데이터의 일부분을 선택하는 작업을 말한다. 인덱싱(indexing) 은 [ ](대괄호)를 사용하여 데이터의 일부분을 선택할 수 있다. 각 자료구조마다 인덱싱(indexing)을 하는 방법이 다르다. 다른 언어와 달리 R은 인덱싱(indexing)이 '1'부터 시작한다는 것에 주의해야한다. - Java, C, C++, Python은 인덱싱(indexing) '0'부터 시작 1. 벡터(vector) - 벡터 인덱싱(indexing)은 다양한 방법으로 가능하다. v1 v1[2] [1] 2 > v1[c(3:5)] [1] 3 4 5 > v1[c(3, 5, 6)] [1] 3 5 6 2. 행렬(matrix) - 행렬은 한가지 데이터 유형으로 구성된 2차원 구조의 데이터이기에 행과..

R/R 2023.11.22

[R] 01. R의 자료구조

데이터 유형 1) 숫자형(numeric): 숫자로만 이루어진 데이터타입 2) 문자형(character): 문자로만 이루어진 데이터타입 3) 논리형(logical): TRUE(T) 또는 FALSE(F)값으로 이루어진 데이터타입 단일형데이터: 한가지 데이터 유형으로만 구성된 데이터 ex. 스칼라, 벡터, 행렬, 배열 다중형데이터: 여러가지 데이터 유형으로 구성된 데이터 ex. 리스트, 데이터프레임 0. 스칼라(scalar) - 한 가지 데이터 유형으로 구성된 0차원 구조의 데이터 - 길이가 1인 벡터 1. 벡터(vector) - 한 가지 데이터 유형으로 구성된 1차원 구조의 데이터 - ':', c(), seq(), rep() 함수를 사용하여 선언 변수명

R/R 2023.11.22

백준 [25206.너의 평점은] | Python

✏️ 문제 https://www.acmicpc.net/problem/25206 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net ✏️ 풀이방법 1. 하나의 리스트에 과목명, 학점, 등급을 담기 2. 학점*과목평점, 학점을 담을 리스트를 선언하여 등급이 P가 아닐 때만 값을 추가하기 3. 학점*과목평점과 학점을 담은 리스트를 활용하여 학점의 총합을 연산하기 📌 코드 grade = [['A+',4.5],['A0',4.0],['B+',3.5],['B0',3.0],['C+',2.5],['C0',2.0],['D+',1.5],[..

Python/online judge 2023.11.17

백준 [2941.크로아티아 알파벳] | Python

✏️ 문제 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net ✏️ 풀이방법 1. 크로아티아 알파벳을 담은 리스트(croatias)를 선언 2. 입력받은 문자열(croatia) 안에 크로아티아 알파벳이 있는지 확인 3. 크로아티아 알파벳과 일치하는 문자열이 있을경우 문자열을 '!'로 치환 4. 치환후 문자열의 길이를 출력 📌 코드 croatias = ['c=','c-','dz=','d-','lj','nj','s..

Python/online judge 2023.11.17

백준 [2566.최댓값] | Python

✏️ 문제 https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net ✏️ 풀이방법 1. max함수를 통해서 그래프의 최댓값 찾기 2. 2중 반복문을 통해서 최댓값 원소의 위치 찾기 📌 코드 graph = [] for _ in range(9): graph.append(list(map(int,input().split()))) #map함수 사용 max_value = max(map(max,graph)) for i in range(len(graph)): for j in range(..

Python/online judge 2023.11.17

백준 [2563.색종이] | Python

✏️ 문제 https://www.acmicpc.net/problem/2563 2563번: 색종이 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변 www.acmicpc.net ✏️ 풀이방법 1. 가로1,가로2=가로1+10, 세로1,세로2=세로1+10 를 하나의 배열에 놓고 [가로2-가로1,세로2-세로1] 을 계산한 리스트를 두고 각각의 색종이의 길이 안에 겹치는 범위가 있는지 비교 2. 겹치는 범위가 있다면 전체 넓이 - 겹치는 부분의 넓이 -> 비교를 너무 많이 연산해야할 것 같은 생각이 들었다. 그래서 다른 방법으로 접근했다. 1. 0으로 초기화된 배열 선언 2. ..

Python/online judge 2023.11.17

백준 [1157.단어 공부] | Python

✏️ 문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net ✏️ 풀이방법 1. 대문자로 출력하기 때문에 모든 알파벳을 대문자로 변경한 str1리스트 2. 중복을 제외하고 어떤 알파벳이 있는지를 담는 str2리스트 3. str과 str2를 비교해서 동일한 알파벳의 개수 count하는 str_cnt리스트 4. str_cnt에 같은 숫자가 2개 이상이면 가장 많이 사용된 알파벳이 여러개이기 때문에 !출력 아닌경우 max값 출력 📌 코드 str = list(input().upper()..

Python/online judge 2023.11.17

백준 [10798.세로읽기] | Python

✏️ 문제 https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net ✏️ 풀이방법 1. 다섯개의 단어를 입력받는 2차원 리스트 선언 2. 단어의 길이가 다를 수도 있기 때문에 단어의 길이를 담는 리스트 선언 3. 입력된 단어 중 가장 긴 길이 만큼 0으로 입력된 리스트를 5번 입력받은 2차원 리스트 선언 4. 입력된 단어의 길이가 길이가 가장 긴 단어와 같지 않다면 입력된 단어만큼 입력하고 그 나머지길이는 !로 대체 5. 출력할 때 새로운 리스트..

Python/online judge 2023.11.17

백준 [2738.행렬 덧셈] | Python

✏️ 문제 https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net ✏️ 풀이방법 1. A,B 두개의 2차원 배열을 각각 입력받기 2. 입력받은 각 행열의 서로의 원소를 더한 값 변수선언해서 저장하기 3. 저장한 변수 출력하기 4. 출력할 때 공백과 함께 출력해야하기에 print함수의 end옵션과 함께 출력 📌 코드 n,m = map(int,input().split()) a = [] for i in range(n): a.append(lis..

Python/online judge 2023.11.17