본문 바로가기
728x90

Programming Languages176

[C Examples] struct과 pointer를 활용한 선수별 점수 출력하기 struct과 pointer를 활용한 선수별 점수 출력하기 포스트 난이도: HOO_Intern # Example codes 이번 포스트에서는 struct과 pointer를 활용하여 선수별 점수를 출력하는 예제코드를 살펴볼 수 있다. 아래의 예제코드를 살펴보면 struct과 더불어 각 선수의 아이디를 입력받아 저장하는데, 이 과정에서 포인터를 활용하여 데이터가 저장되는 걸 알 수 있다. 여기서 추가적으로 아이디를 입력했을 때 중복 여부를 확인할 수 있는 조건 블록을 작성해 줄 수도 있다. 포인터를 확실히 익혀야 다음 단계로 넘어갈 수 있기 때문에 아래의 예제코드를 통해서 포인터와 struct 사용에 대해서 확실히 이해하고 넘어가도록 하자. #include // Define the Player structu.. 2023. 10. 2.
[C Examples] struct을 활용한 영화 정보 출력하기 struct을 활용한 영화 정보 출력하기 포스트 난이도: HOO_Intern # Example codes 이번 포스트에서는 C에서 struct을 어떻게 사용할 수 있는지를 살펴볼 수 있다. 아래의 예제코드는 간략한 영화 데이터를 struct을 활용해서 저장하고 출력해내고 있다. 영화 정부에 들어가 데이터의 경우 동일한 type들을 가지고 있기 때문에 struct을 통해서 타입을 설정해 준 다음 MovieData라는 struct에 저장되어 있는 방식을 movie1과 movie2에서 사용하고 있다. 여기서 struct은 어렵게 생각할 필요없이 마치 글을 작성하는 데 있어서 정해진 양식을 저장해 준 다음에 불러서 반복적으로 사용하는 거와 비슷하다고 생각하면 된다. 그래서 우리는 한국말로 struct을 "구조체.. 2023. 10. 2.
[Python Examples] Energy Flows: Compartments and Rate Coefficients Energy Flows: Compartments and Rate Coefficients 포스트 난이도: HOO_Junior # Example Codes 이번 예제코드는 Energy flow를 살펴볼 수 있는 간단한 시뮬레이션 코드이다. N1부터 N5까지의 시뮬레이션 결과를 아래 예제코드를 통해서 확인할 수 있다. Rate coefficients 값들이 초기값으로 설정되어 있으며 Euler를 통해서 결과를 산출해 냈다. import numpy as np import matplotlib.pyplot as plt # Initial compartment sizes N1 = 2635 N2 = 213 N3 = 62 N4 = 9 N5 = 25 # Rate coefficients u51 = 1.310 u52 = 5.1.. 2023. 9. 29.
[Python Examples] Simple Age-class Simulation Simple Age-class Simulation 포스트 난이도: HOO_Junior # Example Codes 이번 포스트에서는 Simple Age-class Simulation를 통해서 timestep별 population 변화량을 살펴볼 수 있다. 아래의 예제를 토대로 경우의 수들을 붙여나가다가 보면 실제로 사용하는 모델링 시스템처럼 복잡한 나만의 시뮬레이션 모델을 만들어볼 수 있다. HOO_Junior의 포스트를 읽고 있는 브로라면, 이제는 코드 작성에서 벗어나 만들고자 하는 프로그래밍의 빠른 분석과 머릿속으로 구조화하는 연습을 해보는 것이 좋다. 많은 예제들을 더 살펴보면서 익혀나간다면 나중에는 머릿속으로 바로바로 그려지게 된다. 다만 연인에게는 "로봇 같다"라는 말을 들을 수 있기에 유의해야.. 2023. 9. 29.
[Python Examples] Simple Predator/Prey Modeling (먹이사슬 모델링) Simple Predator/Prey Modeling (먹이사슬 모델링) 포스트 난이도: HOO_Middle # Example Codes 생물뿐만 아니라 관계성이 있는 모델링을 할 때 주로 고려하는 모델링 방식 중 하나가 바로 Predator/Prey modeling이다. 상관관계가 있다면 활용이 가능하고 경우에 따라서 수를 늘려나갈 수도 있기 때문에 모델링 개발에 있어서 용이하다. 이번 포스트에서는 간단한 먹이사슬 모델링을 파이썬 코드로 살펴보도록 하자. 이번 예제코드는 간단한 예시이기에 Euler와 Lotka-Volterra model를 통해서 표현해 보았다. import numpy as np import matplotlib.pyplot as plt # Constants r = 0.1 # Prey r.. 2023. 9. 29.
[Python Examples] 문자열 거꾸로 출력하기: #for loop, #def, if statement 문자열 거꾸로 출력하기: #for loop, #def, if statement 포스트 난이도: HOO_Junior # Exmple codes 이번 포스트에서는 문자열을 거꾸로 출력해 보는 파이썬 예제코드를 살펴보려고 한다. 한마디로 문자열로 저장되어 있는 문장을 반대 순서로 출력이 되도록 만들어주는 셈이다. 아마 거꾸로 출력되는 문자열 예제는 프로그래밍 수업에서 웬만하면 많이 다루다 보니 이미 많은 브로들이 알고 있을 수도 있다. 그래서 한 가지 더 추가해서 특정 문자열만 출력이 되도록 하는 조건을 추가해 보았다. 이게 무슨 소리냐면, "/0"이라는 문자가 입력이 되어 있다면 이후에 작성된 문자열이 있더라도 산출되는 결과에 적용되지 않는 것이다. 또한 이번 예제코드에서는 for loop, if state.. 2023. 9. 25.
[Python Examples] 모델링을 위한 데이터 분석 방법 비교: simple Euler integration, Runge-Kutta 4th order 모델링을 위한 데이터 분석 방법 비교: simple Euler integration, Runge-Kutta 4th order 포스트 난이도: HOO_Middle # 모델링을 위한 데이터 분석 이전 포스트, "모델링을 위한 데이터 분석",에서 4가지 계산식을 통해 산출된 결괏값들이 각기 달라질 수 있다는 걸 확인했다. 이번 포스트에서는 각기 다른 계산식일지라도 주어진 조건 값을 조정해 줌으로써 산출 결과를 동일하게 만들어줄 수 있음을 살펴볼 예정이다. 앞선 포스트에 대한 내용이 궁금하다면 아래의 링크를 통해 해당 포스트를 살펴볼 수 있다. https://whoishoo.tistory.com/655 [Python Example] 모델링을 위한 데이터 분석 방법 Analytical solution, simpl.. 2023. 9. 22.
[Python Example] 모델링을 위한 데이터 분석 방법 Analytical solution, simple Euler integration, improved Euler integration, Runge-Kutta 4th order: #matplotlib, #for_loop, #numpy 모델링을 위한 데이터 분석 방법 Analytical solution, simple Euler integration, improved Euler integration, Runge-kutta 4th order: #matplotlib, #for_loop, #numpy 포스트 난이도: HOO_Middle # 계산식에 따른 산출값의 변화 Timeseries의 데이터를 분석하여 모델링을 하기 위해서는 비정형 데이터를 정형화하는 작업이 필요하다. 그중에 가장 기본적으로 데이터를 분석하는 방식이 연속성 데이터를 분석할 수 있는 계산식을 통해서 결괏값을 산출해 내는 것이다. 대표적인 계산식으로는 Analytical solution, Simple Euler integration, Improved Euler integrat.. 2023. 9. 21.
[C Examples] 누가 시험을 잘봤을까#2 (exam highest, lowest, average): for loop, array, if statement, void) 누가 시험을 잘 봤을까#2 (exam highest, lowest, average): for loop, array, if statement, void) 포스트 난이도: HOO_Junior # Example codes 이번 예제코드는 "누가 시험을 잘 봤을까" 포스트에 이은 두 번째 버전의 예제코드이다. for loop, array, if statement를 사용하고 있는 건 기존 포스트에 나와있는 코드와 동일하지만 void를 사용해서 코드 구조 자체를 바꾸어 보았다. 이처럼 반복적으로 사용하는 기능에 대해서는 void를 사용해서 main과 구분하여 사용이 가능하다. 처음 c 프로그래밍을 배우는 학생들에게 있어서 main에 모든 걸 다 쏟아 부는 게 훨씬 쉽고 간단하게 느껴진다는 걸 글쓴이도 백 퍼센트 이.. 2023. 9. 19.
[C Examples] 누가 시험을 잘봤을까 (exam highest, lowest, average): for loop, array, if statement 누가 시험을 잘 봤을까 (exam highest, lowest, average): for loop, array, if statement 포스트 난이도: HOO_Intern # Example Codes 이번 포스트는 C언어를 기반으로 한 최댓값과 최솟값 그리고 평균값을 구해보는 예제코드이다. 예제코드에서 중점적으로 살펴봐야 할 부분은 배열을 어떻게 활용하고 있는지이다. 아래의 예제코드는 1차 배열을 활용하여 각 값들을 비교하여 원하는 값을 산출해내고 있다. #include int main() { int exam[] = { 70, 80, 94, 85, 47, 68, 98, 77, 85, 88 }; int highest = exam[0]; int lowest = exam[0]; float total = 0; .. 2023. 9. 19.
[C Examples] 고양이 중에 누가 가장 밥을 많이 먹나: for loop, 2 dimensional array, if statement 고양이 중에 누가 가장 밥을 많이 먹나: for loop, 2 dimensional array, if statement 포스트 난이도: HOO_Junior # Example codes 글쓴이는 동물 애호가이다. 오늘은 간단하면서도 재미있는 예제코드를 만들어보았다. 이번 예제코드에서는 고양이 3마리가 매일 얼마만큼의 밥을 먹으며, 최종적으로 누가 가장 많은 밥을 며칟날 먹었는지를 산출해 내는 걸 확인할 수 있다. 예제코드에서 유심히 살펴봐야 할 부분은 이차 배열을 활용하여 각각의 값들을 저장해주고 있으며, 이를 이중 for loop에서 어떻게 데이터 값들이 저장되고 if문에서 특정 값을 산출해 내기 위해 어떻게 계산이 되는 지이다. 거두절미하고 코드를 살펴보도록 하자. #include int main() .. 2023. 9. 18.
[Python Examples] 효소 활성화 반응 (Enzyme-activated Reaction): matplotlib, for loop, array 효소 활성화 반응 (Enzyme-activated Reaction): matplotlib, for loop, array 포스트 난이도: HOO_Junior # Example codes 이번 예제코드는 효소 활성화 반응을 산출하는 파이썬 코드이다. Matplotlib, for loop, array을 사용하고 있기에 해당 functions들에 대한 복습을 하는데 괜찮은 코드이다. for loop과 array를 통해서 시간대별 변화하는 효소 반응을 산출하고 있으며, 산출된 결과값들을 기반으로 배열에 저장된 데이터를 그래프로 표현할 때에 matplotlib을 사용하고 있는 걸 확인할 수 있다. # v= Vmax[s]/Km+[s] #[s]=0 to 80 #Km=10 #Vmax=0.10^(-1) #ear is a .. 2023. 9. 15.
[Python Examples] 사망 시간 추정하기: while loop 사망 시간 추정하기: while loop 포스트 난이도: HOO_Intern # Example codes 이번 포스트에서는 while loop을 활용한 사망 시간 추정시간 예제코드를 살펴볼 수 있다. 간단한 계산식과 더불어 while loop을 사용하고 있기에 반복문이 어떻게 사용되고 있는지에 대한 복습하기에 좋은 예제코드이다. 우선 각 변수들과 dt라는 계산식이 포함된 변수를 통해 t라는 사망 시간을 추정할 수 있도록 코드를 작성해 준다. 이후에 사람의 체온이 0이 될 때까지 t값의 시간이 추가되도록 반복 작업을 해줘야 하는데 이때 사용하는 function이 while loop이다. while문을 살펴보면 dt 값이 하나씩 빠질 때, t 값이 하나씩 증가하는 걸 확인할 수 있다. 이후에 while문이 .. 2023. 9. 15.
[Python Examples] Growth of a Bacterial Populations: for loop, matplotlib, array Growth of a Bacterial Populations: for loop, matplotlib, array 포스트 난이도: HOO_Junior # Example Codes 이번 예제코드는 박테리아 증식에 대한 결과를 산출해내고 있으며, 결괏값을 그래프로 나타내었다. matplotlib을 통해서 그래프로 표현이 가능하며, for loop를 통해서 각 시간대별 결과를 계산식으로 하여금 산출해 낼 수 있다. 또한 array를 활용해서 시간대별 값을 저장한 후에 그래프로 출력하는 데 사용하였다. 코드로 보면 허무할 정도로 간단해 보이지만 requirments나 계산식만 주어졌을 때 코드로 변환하는 과정이 어렵게만 느껴질 수 있다. 특히 이제 막 파이썬을 배우기 시작하거나 프로그래밍 자체를 다루기 시작한 학.. 2023. 9. 15.
[C Examples] do while문을 사용해서 섭씨를 화씨로 변환하기 do while문을 사용해서 섭씨를 화씨로 변환하기 포스트 난이도: HOO_Intern # Example Codes 이번 예제코드를 통해서 섭씨를 화씨로 산출되는 걸 확인할 수 있다. 이번 코드에서는 do while문을 어떤 식으로 사용되고 있는지를 살펴볼 수 있다. do while문을 사용하지 않더라도 섭씨를 화씨로 계산하는 식을 작성함으로써 화씨 값이 산출이 되지만 do while문을 통해서 섭씨가 영하로 나오는 값이 계산이 안되게끔 설정이 가능하다. 예를 들어서 아래의 코드를 살펴보면, celsius 값이 0보다 작을 경우 다시 0보다 큰 값을 작성하도록 코드가 구성되어 있는 걸 볼 수 있다. 이처럼 do while문을 통해서 원하는 산출 값을 얻기 위한 반복적인 작업이 가능하다. #include .. 2023. 9. 3.
[C Examples] void와 array를 사용해서 시험 점수 평균과 가장 높은 점수 구하기 예제코드 void와 array를 사용해서 시험 점수 평균과 가장 높은 점수 구하기 예제코드 포스트 난이도: HOO_Junior # Example codes 이 예제코드의 핵심은 main function을 최대한 사용하지 않고 void와 array (배열)를 통해서 4개의 시험 점수를 비교해서 최댓값을 구하고 4개의 시험 점수에 대한 평균값을 구하는 것이다. 아래의 예제코드를 통해서 void와 array를 어떤 식으로 활용하는지를 살펴보고 이해할 수 있다. 또한 array를 사용하는 데 있어서 포인터를 활용하고 있기 때문에 포인터에 대해서 아래의 예제코드를 통해서 살펴볼 수 있다. 이 외에도 array에 각 값들을 저장하는 데 있어서 사용된 반복문인 for loop과 if else문을 통해서 각 값들을 비교 분석하.. 2023. 9. 3.
[R Examples / RStudio] rnorm hist, Principal component analysis (PCA) rnorm hist, Principal component analysis 포스트 난이도: HOO_Middle # rnorm hist 확률 통계 그래프를 생성하는 데 있어서 우리는 네 가지 방식의 정규 분포 함수를 사용할 수 있다. 예를 들어서 dnorm(), pnorm(), qnorm(), rnorm() 등이 있다. 그중에서 랜덤 숫자 분포에 따른 결과를 산출할 때 사용되는 rnorm()을 활용하여 막대그래프를 아래의 R코드를 통해서 산출할 수 있다. 우선 첫 번째 줄의 경우에는 rnorm을 통해서 랜덤 변수의 분포에 대한 조건을 괄호 안에 넣어준다. 평균과 표준 편차를 각기 다리 지정하여 랜덤 한 변수인 n으로 지정이 가능하다. 두 번째 줄에 있는 hist()의 경우에는 히스토그램을 설정해 주는 함수인.. 2023. 8. 27.
[Python] bash: pip: command not found bash: pip: command not found # 맥북 vscode pip 에러 맥북에서 vscode를 사용할 때 발생할 수 있는 에러로 pip가 제대로 설치가 되어있지 않았다는 걸 의미한다. 한마디로 컴퓨터가 도대체 무슨 명령어인지 못 알아듣는 상황이라고 볼 수 있다. 윈도우 환경에서는 파이썬 설치와 동시에 pip의 명령어를 바로 사용할 수 있을 뿐만 아니라 자동으로 다른 모듈 설치까지 해주는데 도대체 이 놈의 맥북은 매번 애증의 관계이다. 아무튼 글쓴이의 나름의 여러 가지 방법을 토대로 찾아낸 가장 간단하게 해결할 수 있는 방법을 찾아냈다. # cURL cURL은 컬이라고 부르는 데이터를 전송하기 위해 특정 주소와 함께 작성된 명령줄에 해당된다. 한마디로 우리가 터미널에서 인터넷이라고 부르는 통.. 2023. 8. 11.
[Python Examples] 파이썬 문자열 사이에 문자열 추가하기 예제 코드 파이썬 문자열 사이에 문자열 추가하기 예제 코드 포스트 난이도: HOO_Junior # Example Code 1 string1 = "HOOI" string1 =string1[0:3]+'A'+string1[3:] print(string1) HOOAI 파이썬에서는 문자열 사이에 문자열을 추가할 수 있다. 예를 들어서 위의 예제코드 "string1"이라는 변수를 보면 "HOOI"라는 문자열이 선언되어 있다. 만일 우리가 "string1"이라는 변수에 "HOOAI"라는 문자열을 가지도록 바꿔주고 싶다면 'A'라는 문자를 문자열 사이에 추가해 줘야 된다고 생각한다. 마찬가지로 컴퓨터에도 해당 문자를 어느 위치에 추가로 저장해 줄 건지를 알려줘야 하는데, 이때 가장 간단한 방법은 string1이라는 문자열을 문자.. 2023. 8. 9.
[R] set.seed()란? set.seed()란? 포스트 난이도: HOO_Middle # set.seed function R 코드에서 set.seed() 함수를 통해서 무작위로 바뀌는 랜덤 값을 고정적으로 산출할 수 있다. 이 말을 이해하기 위해서는 우선 컴퓨터는 기본적으로 무작위의 숫자를 산출할 수가 없다. 인공지능이면 몰라도 사실상 컴퓨터는 사람처럼 생각하는 프로세스가 없기 때문에 무작위의 랜덤 숫자를 산출해내지 않는다. 마치 랜덤한 숫자처럼 보이는 것들은 주어진 조건 내에서 숫자가 랜덤하게 나올 수 있도록 코딩이 되어 있을 뿐이다. 마치 우리가 보기에 랜덤할 뿐 실제로는 컴퓨터는 주어진 조건 속에서 랜덤하게 보이게끔 숫자를 산출한다는 것이다. 그렇기에 랜덤하게 나오는 숫자지만 해당 숫자들을 고정할 수도 있다는 것이다. 두 번.. 2023. 7. 3.
[C] c99이란? c99이란? 포스트 난이도: HOO_Intern # c99 C 언어를 사용하는 수업을 듣는데 과제를 하기 위해 requirments를 읽어보던 중에 "c99"이라는 표현을 본 적이 있을 것이다. 글쓴이에게 질문을 했던 브로도 도대체 c99이 무엇인지 궁금해했다. 한마디로 c99은 표준화된 c 프로그래밍 언어의 한 버전을 의미한다. 프로그램이나 OS에도 매번 업데이트되는 버전이 있듯이 프로그래밍 언어도 지속적으로 업데이트가 이루어지다 보니 각 언어마다 버전이 다를 수가 있다. c99은 c언어의 버전을 의미하는 용어이며 1999년에 표준화된 버전이다. # 왜 굳이 c99 버전을 언급하나요? 처음 c언어를 배우는 사람들에게는 사실상 c99에 대해서 꼭 알아야할 필요가 없다. 하지만 교수님이나 어떤 과제에 c9.. 2023. 4. 14.
[C Examples] C 예제코드: 사칙연산 계산기 만들기, switch() C 예제코드: 사칙연산 계산기 만들기, switch() 포스트 난이도: HOO_Junior # Example Codes #include #include int main() { int num1,num2; float result; char ch; printf("Enter first number: "); scanf("%d",&num1); printf("Enter second number: "); scanf("%d",&num2); printf("Choose operation to perform (+,-,*,/,%): "); scanf(" %c", &ch); printf("You typed %c operator. \n", ch); switch(ch) { case '+': result=num1+num2; break.. 2023. 4. 14.
[C Examples] 알파벳 모음, 자음 구분하기 예제코드: switch() 알파벳 모음, 자음 구분하기 예제코드: switch() 포스트 난이도: HOO_Junior # Example Codes #include #include int main() { char ch; printf("Enter any alphabet:"); //input alphabet from user scanf("%c", &ch); switch(ch){ case 'A': printf("Vowel\n"); break; case 'E': printf("Vowel\n"); break; case 'I': printf("Vowel\n"); break; case 'U': printf("Vowel\n"); break; case 'O': printf("Vowel\n"); break; case 'a': printf("Vowel.. 2023. 3. 24.
[C Examples] 입력된 숫자의 각 자리수를 더하고 3과 9로 나누어지는지 살펴보는 예제코드: do while(), if() 입력된 숫자의 각 자리수를 더하고 3과 9로 나누어지는지 살펴보는 예제코드: do while(), if() 포스트 난이도: HOO_Junior # Example Codes #include int main() { int num, digit, sum=0; printf("Enter a positive integer: "); scanf("%d", &num); do { digit = num % 10; sum += digit; num /= 10; } while (num != 0); printf("The sum of the digits = %d\n", sum); num = sum; do { num -= 3; } while (num >= 3); if (num == 0) { printf("%d is divisible b.. 2023. 3. 23.
[C Examples] 입력한 온도 값에 따라 온도 상태 구분하기 예제 코드: if(), else if(), while() 입력한 온도 값에 따라 온도 상태 구분하기 예제 코드: if(), else if(), while() 포스트 난이도: HOO_Junior # Example codes #include int main(){ int temperature[50]; int n,i,hot=0,pleasant=0,cold=0; float average=0; printf("Enter number of temperatures:"); scanf("%d",&n); printf("Enter Temperatures: "); while(i=60&&temperature[i] 2023. 3. 22.
[C Examples] 시간대별 통화요금 계산기 예제코드: if, else, char 시간대별 통화요금 계산기 예제코드: if, else, char 포스트 난이도: HOO_Junior # Example Codes #include #include int main() { int min, dayOrNight; float rCharge, pCharge; char serviceCode; printf("The rates are computed as follows: Regular service: $10.00 plus first 50 minutes are free.\n"); printf("Charges for over 50 minutes are $0.20 per minute, Premium service: $25.00 plus. \n"); printf("Enter your service code:");.. 2023. 2. 20.
[C Examples] 세금 계산기 예제코드: if, else if 세금 계산기 예제코드: if, else if 포스트 난이도: HOO_Intern # Example Codes #include #include int main() { float salary,tax; tax = 0; printf("Income: $"); scanf("%f",&salary); if (salary < 1000) { tax = 0.01 * salary; } else if (salary < 2000) { salary=salary-1000; tax = 0.01 * salary; tax = tax + 10; } else if (salary 2023. 2. 19.
[C Examples] 24시간을 12시간 표기로 바꾸기 예제코드: if(), else 24시간을 12시간 표기로 바꾸기 예제코드: if(), else 포스트 난이도: HOO_Intern # Example Codes #include #include int main() { int userHour, userMinute, hour; printf("Time(e.g., 23:15):"); scanf("%d:%d", &userHour, &userMinute); if (userHour > 11) { hour = userHour - 12; if(hour == 12){ printf("Time is 00:%d AM\n", userMinute); } else{ printf("Time is %d:%d PM\n", hour, userMinute); } } else{ printf("Time is %d:%d AM\n.. 2023. 2. 18.
[C Examples] GPA 계산기 예제코드: if(), else if() GPA 계산기 예제코드: if(), else if() 포스트 난이도: HOO_Intern # Example Codes #include #include int main() { float gpa; printf("Enter the GPA:\n"); scanf("%f.2", &gpa); if (gpa > 3.9 || gpa == 3.9){ printf("Dean's list.\n"); } else if(gpa < 2.00){ printf("GPA is below the graduation requirement.\n"); } printf("Coded by HOO.\n"); return 0; } Enter the GPA: 3.9 Dean's list. Coded by HOO. Enter the GPA: 1.96 G.. 2023. 2. 17.
[C Examples] 7 Digit ISSN, 8번째 숫자 산출하기 예제코드: if(), else(), %d 7 Digit ISSN, 8번째 숫자 산출하기 예제코드: if(), else(), %d 포스트 난이도: HOO_Junior # Example Codes #include int main() { int frontISSN, frontISSNOne, frontISSNTwo, frontISSNThree, frontISSNFour, backISSN, backISSNOne, backISSNTwo, backISSNThree, backISSNPer, modNum, unknownNum; printf("Enter the 7 digit ISSN in form of XXXX-XXX:"); scanf("%d - %d", &frontISSN, &backISSN); frontISSNOne = frontISSN/1000; frontI.. 2023. 2. 15.
728x90