You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- 입력, 출력만 보면 쉬워보이는 문제더라도 다시 조건을 확인하면 엄청난 양의 인풋이 주어진다거나 해서 푸는 것이 어려울 수도 있다. 앞서 설명하지는 않았지만 '시간 초과', 혹은 '메모리 초과'같은 결과가 나왔으면 단순히 눈에 보이는 방식으로는 문제를 풀 수 없다는 이야기일 수 있으니, 다른 사람들이 어떻게 풀었는지 검색해서 구현 방법을 찾아보면서 테크닉들을 익히는 것을 추천한다.
9
51
10
52
[:material-arrow-left-bold: 글 목록](../index.md){ .md-button }
Copy file name to clipboardexpand all lines: docs/works/tools-and-tales/data-structures-and-algorithms/basics/topic/dev_environment.md
+70-2
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,75 @@ title: "개발 환경 세팅"
4
4
5
5
[:material-arrow-left-bold: 글 목록](../index.md){ .md-button }
6
6
7
-
!!! danger "UNDER CONSTRUCTION"
8
-
This page is under construction.
7
+
기초 문법을 한 번 훑어보았다면, 이제 실습을 진행해보자.
8
+
9
+
## 온라인
10
+
11
+
매번 정해진 pc에서 개발할 수 있는 것이 아니고, 사용하는 pc에 개발 환경이 세팅되어 있지 않다면, 개발을 할 때마다 매번 환경을 새로 세팅해주는 것보다 작성한 코드를 돌려주는 온라인 서비스들을 활용하는 것이 더 편할 수도 있다. online python, online c++, ... 등의 키워드로 구글링해보면 무료로 코드 실행이 가능한 사이트들을 찾을 수 있을 것이다.
12
+
13
+
개인적으로는 아주 간단한 코드가 돌아가는지 확인해야 하는 상황에서는 [onlinegdb](https://www.onlinegdb.com/){:target="\_blank"}사이트에 들어가서 테스트를 해보기도 한다. 이 글을 작성하고 있는 2025년 2월 시점에 무료로 사용이 가능하고, python, js, c#, c++등 여러 주요 언어들을 지원해준다.
5. 이제 작성한 코드를 실행해보자. 먼저 ``ctrl + ` ``키를 누르면 창 하단에 터미널 창이 뜰 것이다(`` ` ``기호는 백틱이라고 읽으며, 숫자 1 옆에 있다.). 이 창에 `py test.py`, 혹은 `node test.js`라고 입력하고 엔터를 누르면 작성한 코드가 실행된다. 실행하고 나면 터미널 창에 `hello`라는 문자열이 출력된다.
Copy file name to clipboardexpand all lines: docs/works/tools-and-tales/data-structures-and-algorithms/basics/topic/input_output.md
+198-2
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,203 @@ title: "입출력"
4
4
5
5
[:material-arrow-left-bold: 글 목록](../index.md){ .md-button }
6
6
7
-
!!! danger "UNDER CONSTRUCTION"
8
-
This page is under construction.
7
+
실습을 원활하게 진행하기 위해서는 중간중간 출력을 해보기도 하고, 코드에 있는 변수를 수정하지 않고 외부의 입력을 받아서 써야 할때도 있다. 여기에서는 아주 간단한 입출력 방법을 설명하겠다.
8
+
9
+
## 출력
10
+
11
+
코드를 작성한 뒤 실행하면 코드가 돈다. 이때 코드 사이에 어떤 값을 출력하도록 하는 것이 가능하다. 지금은 출력한 결과물이 콘솔 창에 나타난다고만 이해하고 넘어가도 괜찮다. 출력은 다음의 상황에 매우 유용하다.
12
+
13
+
- 연산을 한 뒤 특정 변수에 어떤 값이 들어있는지 확인
14
+
- 조건문에서 어떤 분기를 타고 갔는지 확인
15
+
- 반복문 내부에서 일어난 일 확인
16
+
17
+
=== "python"
18
+
19
+
``` python
20
+
"""변수를 다음과 같이 확인할 수 있다.
21
+
"""
22
+
a, b = 1, 2
23
+
c = a + b
24
+
print(c) # 3
25
+
26
+
"""문자열 사이에 변수값을 같이 출력하고 싶을 수 있다.
27
+
파이썬에서는 fstring이라는 것을 사용할 수 있다. 문자열 앞에 `f`를 붙이고, 출력
28
+
하고 싶은 변수를 중괄호 안에 묶어서 쓴다.
29
+
"""
30
+
print(f"a is {a} and b is {b}, so a + b equals {c}.")
31
+
32
+
"""조건문을 다음과 같이 확인할 수 있다.
33
+
"""
34
+
x, y = 24, 42
35
+
if x > y:
36
+
print('x is larger than y')
37
+
else:
38
+
print('x is not larger than y')
39
+
40
+
"""반복문에 print를 넣어두면 반복문 내에서 일어나는 일을 쉽게 확인할 수 있다.
41
+
"""
42
+
43
+
s = 0
44
+
for i in range(10):
45
+
s += i
46
+
print(i, s) # 공백으로 구분된 두 변수가 출력된다.
47
+
48
+
# 출력 결과:
49
+
# 0 0
50
+
# 1 1
51
+
# 3 2
52
+
# 6 3
53
+
# 10 4
54
+
# 15 5
55
+
# 21 6
56
+
# 28 7
57
+
# 36 8
58
+
# 45 9
59
+
```
60
+
61
+
=== "javascript"
62
+
63
+
``` js
64
+
// WIP
65
+
```
66
+
67
+
=== "C#"
68
+
69
+
``` cs
70
+
// WIP
71
+
```
72
+
73
+
=== "C++"
74
+
75
+
``` cpp
76
+
// WIP
77
+
```
78
+
79
+
## 입력
80
+
81
+
많은 경우 출력까지만 할 줄 알아도 괜찮다. 하지만 콘솔 창을 통해 입력을 받거나 텍스트 파일을 불러와서 입력으로 사용하는 경우가 종종(...이라고 썼지만, 아마 알고리즘 문제를 푸는 경우 외에 볼 일이 많지는 않을 것이다.) 있으니니, 이를 위해 기본적인 입력 함수 사용법을 설명하도록 하겠다.
82
+
83
+
=== "python"
84
+
85
+
``` python
86
+
"""다음과 같이 직접 입력을 받을 수 있다.
87
+
"""
88
+
# 터미널 창에 문자열이 먼저 나오고, 이어서 사용자가 값을 입력한 뒤 엔터를 누른다.
89
+
a = input("첫 번째 수를 입력하세요: ")
90
+
b = input("두 번째 수를 입력하세요: ")
91
+
print(f'두 수의 합은 {a + b}입니다.') # fstring의 중괄호 안에서 연산을 할 수도 있다.
92
+
93
+
# 출력 예시:
94
+
# 첫 번째 수를 입력하세요: 1
95
+
# 두 번째 수를 입력하세요: 3
96
+
# 두 수의 합은 13입니다.
97
+
98
+
"""출력 예시가 뭔가 이상하다. 1 + 3 = 4가 되어야 하는데, 13이 되었다.
99
+
그 이유는, input함수를 통해 받아온 값은 문자열이기 때문이다. 참고로 input함수는 줄바꿈
100
+
(엔터를 치면 줄바꿈 문자가 입력된다)이 나오기 전까지의 값을 한 번에 문자열로 받아온다.
101
+
우리는 숫자로 계산을 하고 싶다. 그러므로 문자열로 들어온 값을 정수로 변환해주어야 한다.
102
+
"""
103
+
104
+
a = int(input("첫 번째 수를 입력하세요: "))
105
+
b = int(input("두 번째 수를 입력하세요: "))
106
+
print(f'두 수의 합은 {a + b}입니다.')
107
+
108
+
# 출력 예시:
109
+
# 첫 번째 수를 입력하세요: 1
110
+
# 두 번째 수를 입력하세요: 3
111
+
# 두 수의 합은 4입니다.
112
+
113
+
"""터미널 창에 직접 값을 입력하는 것이 번거로울 수 있다. 미리 입력할 값을 텍스트 파일로
114
+
저장해둔 뒤 이를 코드를 실행할때 입력으로 사용하는 것도 가능하다.
115
+
116
+
실습을 위해 파이썬 파일이 있는 폴더에 다음과 같은 텍스트 파일을 준비한다.
117
+
118
+
(data.txt)
119
+
1
120
+
3
121
+
"""
122
+
123
+
# 아래는 바로 위에서 사용한 것과 같은 코드다.
124
+
a = int(input("첫 번째 수를 입력하세요: "))
125
+
b = int(input("두 번째 수를 입력하세요: "))
126
+
print(f'두 수의 합은 {a + b}입니다.')
127
+
128
+
# 지금까지 터미널에서 `py test.py`로 코드를 작동시켰다면,
129
+
# 이번에는 `py test.py < test.txt`로 코드를 작동시켜보자.
130
+
# 만약 어떤 에러가 발생했다고 나오면 다음 항목에서 해결 방법을 알아보고 다시 돌아오자.
131
+
132
+
# 출력 예시:
133
+
# 첫 번째 수를 입력하세요: 두 번째 수를 입력하세요: 두 수의 합은 4입니다.
134
+
135
+
# 텍스트 파일에 있는 내용을 읽어서 입력으로 사용하기 때문에 사용자가 직접 값을 입력하거나
136
+
# 엔터를 누르지 않는다. 그래서 input 함수 안에 있는 문자열이 한 줄로 출력된다.
137
+
# 이를 방지하기 위해서 다음과 같이 코드를 수정하자.
138
+
a = int(input())
139
+
b = int(input())
140
+
print(f'두 수의 합은 {a + b}입니다.')
141
+
142
+
# 출력 예시:
143
+
# 두 수의 합은 4입니다.
144
+
145
+
"""종종 한 줄에 공백으로 구분된 숫자가 여럿 들어있을 수도 있다.
146
+
이번에는 실습을 위해 파이썬 파일이 있는 폴더에 다음과 같은 텍스트 파일을 준비한다.
147
+
148
+
(data-2.txt)
149
+
1 3
150
+
"""
151
+
# 다음의 두 함수에 대해 알아야 한다.
152
+
# - split 함수는 문자열을 특정 문자를 기준으로 잘라준다.
153
+
# - map 함수는 리스트 안에 있는 값들에 특정한 함수를 적용해준다.
154
+
# 이렇다는 개념만 숙지하고 다음의 코드를 보자.
155
+
156
+
a, b = map(int, input().split())
157
+
158
+
# 1. 여기서 split 함수 안에 아무 값도 넣지 않았는데, 그럴 경우 공백을 기준으로 문자를
0 commit comments