본문 바로가기
반응형

전체 글881

[Mac] 맥 숨긴 파일 보기 및 숨기기 - 표시 끄기 & 켜기 안녕하세요. 이번 포스팅은 맥(Mac)에서 숨긴 파일 보기와 끄기입니다. 숨긴파일을 표시할 폴더에서 command + shift + .(점) 단축키를 누릅니다. 다시, 파일들을 숨기기 위해서 폴더에서 command + shift + .(점) 단축키를 누릅니다. 2023. 9. 2.
c언어 총정리9 - 매크로 선행처리기 - 사용 방법, 잘못된 매크로 선행처리기 컴파일 이전에 처리로 선행처리기가 역할을 담당한다. 삽입해 놓은 선행처리 명령문대로 소스코드의 일부를 수정한다. #으로 시작하고, 명령문 끝에 ;(세미콜론)을 붙이지 않는다. 매크로 코드를 작성할 때 특정한 텍스트 조각을 대체하는 간단한 코드 조각이다. 크기가 작은 함수와 호출 빈도수가 높은 함수를 매크로로 정의한다. 장점 - 일반 함수에 비해 실행 속도가 빠르다. 자료형에 따라서 별도로 함수를 정의x 단점 - 정의가 어렵다. 디버깅이 어렵다. #define: Object-like macro 1 2 #define PI 3.1415 // (지시자) (매크로 이름) (매크로 몸체) 매크로를 마지막에 등장하는 매크로 몸체로 치환한다. 매크로의 이름은 대문자로 정의하는 것이 일반적이다. 1 2 3 4.. 2023. 9. 1.
c언어 총정리8 - 메모리 관리와 동적 할당 - malloc, calloc, realloc, free 함수 메모리 구성 프로그램 실행 시 운영체제에 의해 마련되는 메모리의 구조는 코드, 데이터, 힙, 스택 영역으로 구분된다. 코드 영역 - 프로그램의 코드가 저장, CPU가 저장된 명령문을 하나씩 가져가서 실행 데이터 영역 - 전역변수와 static으로 선언된 변수가 할당, 프로그램 종료 시 까지 남아있다. 스택 영역 - 지역변수와 매개변수가 할당, 함수의 종료 시 소멸 힙 영역 - 원하는 시점에 변수를 할당, 소멸하는 변수 메모리 동적 할당 하나의 전역변수(배열) 사용하면 함수를 호출하게 되면 얻게 된 정보를 유지되지 않는다. 힙 영역에서 함수가 매번 호출 시 새롭게 할당되고, 함수 종료 시 유지되는 변수를 생성한다. malloc, free 함수 힙 영역의 메모리 공간의 할당과 해제를 하고, 함수의 호출 위치.. 2023. 9. 1.
c언어 총정리 6 - 구조체 구조체 정의 C언어에서 구조체는 포인터 변수와 배열 포함한 변수을 묶어서 새 자료형을 정의합니다. 1 2 3 4 5 struct point { int xpos; char name[20]; }; 구조체의 이름이 자료형의 이름이 된다. 기본 자료형은 아니지만, 묶어서 새로운 자료형을 만든 것이다. (사용자 정의 자료형 - user definded data type) 배열도 값이 저장이 가능한 변수의 성격을 가지기 때문에 구조체의 멤버가 될 수 있다. 구조체 변수의 선언과 접근 구조체 변수로 자료형들을 대상으로 변수를 선언할 수 있다. 1 2 // 구조체 변수선언의 기본 형태 struct type_name val_name; 구조체 변수를 선언할 때는 맨 앞에 struct 선언을 추가한다. 생성된 구조체의 접근.. 2023. 9. 1.
c언어 총정리1 - 기본 C언어 기본 1971년 유닉스라는 운영체제를 개발하기 위해 데니스 리치와 켄 톰슨이 함께 설계한 범용적인 고급 언어(High-level) 언어 유닉스는 어셈블리 언어라는 저급(low-level) 언어로 만들어졌기 때문에 하드웨어의 의존도가 높았다. (이식성이 낮다) -> cpu의 종류가 바뀌면 다시 작성 절차지향적 특성 – 정해진 순서의 실행흐름 중시 이식성이 좋다 – cpu의 종류에 상관없이 실행, 운영체제의 차이에 덜 민감 좋은 성능 – 성능에 민감한 소프트웨어의 개발에 주로 사용, 메모리의 양이 상대적으로 적고, 속도를 저하시키는 요소들을 최소화한 언어. 작성, 실행 방법 프로그램 작성 컴파일(Complie) 링크(Link) 실행파일 생성 c프로그램을 이루는 파일의 종류는 소스파일과 헤더파일 등으로.. 2023. 8. 30.
마크다운(Markdown) 하이퍼링크 사용하기 안녕하세요. 이번 포스팅은 마크다운(Markdown)에서 하이퍼링크 삽입하기 입니다. 1 # [제목](https://codeomni.tistory.com/) cs 링크를 걸 단어에 [ ] 괄호로 표시하고 ( ) 사이에 주소를 입력합니다. 2023. 8. 2.
마크다운(Markdown) 줄긋기 안녕하세요. 이번 포스팅은 마크다운(Markdown)에서 줄긋기입니댜. 1 2 3 4 5 * * * *** ***** - - - ------------------ cs 취소선을 긋는 방법은 5개입니다. 1번 ~ 5번 중에서 편한 방법을 사용하면 됩니다. 2023. 8. 1.
[SWEA] SWEA 5549번: 홀수일까 짝수일까 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 5549번 문제 풀이입니다. 문제 이름은 "홀수일까 짝수일까" 입니다. 풀이 1 2 3 4 5 6 7 T = int(input()) for tc in range(T): N = int(input()) if N % 2 == 0: print('#%d Even' %(tc+1)) else: print('#%d Odd' %(tc+1)) cs 핵심: 파이썬의 정수 범위는 무한대입니다. 1. 테스트의 수를 입력 받습니다. 2. for문을 통해 테스트 수 만큼 반복합니다. 3. 판별할 수 N을 입력 받습니다. 4~5. 2로 나눈 나머지가 0일 경우 짝수를 출력합니다. 6~7. 2로 나눈 나머지가 1일 경우 홀수를 출력합니다. 2023. 4. 26.
[SWEA] SWEA 1220번: Magnetic 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 1220번 문제 풀이입니다. 문제 이름은 "Magnetic" 입니다. 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 for tc in range(10): N = int(input()) l = [list(map(int, input().split())) for i in range(N)] result = 0 for i in range(N): cout = 0 for j in range(N): if l[j][i] == 1: cout = 1 if l[j][i] == 2: if cout == 1: result += 1 cout = 0 print('#%d %d' %((tc+1), result)) cs 핵심: 열우선으로 탐색하여 1이 있을 경우 카운트해서 2을 만날.. 2023. 4. 18.
[SWEA] SWEA 3260번: 두 수의 덧셈 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 3260번 문제 풀이입니다. 문제 이름은 "두 수의 덧셈" 입니다. 풀이 1 2 3 4 T = int(input()) for tc in range(T): A, B = map(int, input().split()) print('#%d %d' %((tc+1), A+B)) cs 핵심: 파이썬의 정수 범위는 무한대입니다. 1. 테스트의 개수를 입력 받습니다. 2. for문으로 테스트의 수만큼 반복합니다. 3. A, B를 입력 받습니다. 4. 출력 양식에 맞게 결과값을 출력합니다. 2023. 4. 17.
[SWEA] SWEA 1217번: 거듭 제곱 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 1217번 문제 풀이입니다. 문제 이름은 "거듭 제곱" 입니다. 풀이 1 2 3 4 5 6 7 8 9 def mul(N, M): if M 2023. 4. 17.
[SWEA] SWEA 1213번: String 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 1213번 문제 풀이입니다. 문제 이름은 "String" 입니다. 풀이 1 2 3 4 5 for tc in range(10): T = int(input()) s_1 = input() s_2 = input() print('#%d %d' %((tc+1), s_2.count(s_1))) cs 핵심: 파이썬의 내장함수인 count() 함수를 사용합니다. 1. 테스트 개수 10만큼 반복합니다. 2. 테스트 순번을 입력 받습니다. 3. 찾을 문자열을 입력 받습니다. 4. 문장을 입력 받습니다. 5. 출력 양식에 맞게 결과값을 출력합니다. 2023. 4. 17.
[SWEA] SWEA 1209번: Sum 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 1209번 문제 풀이입니다. 문제 이름은 "Sum" 입니다. 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 for tc in range(10): T = int(input()) l = [list(map(int, input().split())) for i in range(100)] max = 0 for i in range(100): s = 0 for j in range(100): s += l[i][j] if max 2023. 4. 17.
[SWEA] SWEA 1208번: Flatten 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 1208번 문제 풀이입니다. 문제 이름은 "Flatten" 입니다. 풀이 1 2 3 4 5 6 7 8 9 10 11 for tc in range(10): dump = int(input()) l = list(map(int, input().split())) for i in range(dump): l_max = max(l) l_min = min(l) l_max_index = l.index(l_max) l_min_index = l.index(l_min) l[l_max_index] -= 1 l[l_min_index] += 1 print('#%d %d' %((tc+1), max(l)-min(l))) cs 핵심: 리스트로 입력 받아서 최댓값에서 -1, 최솟값에서 +1을 해줍니다.. 2023. 4. 17.
[SWEA] SWEA 14692번: 통나무 자르기 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 14692번 문제 풀이입니다. 문제 이름은 "통나무 자르기" 입니다. 풀이 1 2 3 4 5 6 7 T = int(input()) for tc in range(T): N = int(input()) if N % 2 == 1: print('#%d ' %(tc+1) + 'Bob') else: print('#%d ' %(tc+1) + 'Alice') cs 핵심: 입력된 값을 나머지 연산자로 계산합니다. 1. 테스트 개수 T를 입력 받습니다. 2. for문으로 테스트 수 T만큼 반복합니다. 3. 통나무의 길이 N을 입력 받습니다. 4. 홀수일 경우 'Bob'을 출력, 짝수일 경우 'Alice'를 출력합니다. 2023. 4. 17.
[SWEA] SWEA 15758번: 무한 문자열 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 15758번 문제 풀이입니다. 문제 이름은 "무한 문자열" 입니다. 풀이 1 2 3 4 5 6 7 8 9 T = int(input()) for tc in range(T): S, T = input().split() s_len = len(S) t_len = len(T) if S * t_len == T * s_len: print('#%d ' %(tc+1) +'yes') else: print('#%d ' %(tc+1) +'no') cs 핵심: 문자열의 크기 만큼 S와 T에 곱해준 뒤에 비교합니다. 1. 테스트 개수 T를 입력 받습니다. 2. for 문을 사용해서 테스트 개수만큼 반복합니다. 3. 문자열 S와 T를 입력 받습니다. 4~5. len() 함수를 사용해서 문.. 2023. 4. 16.
[SWEA] SWEA 15230번: 알파벳 공부 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 15230번 문제 풀이입니다. 문제 이름은 "알파벳 공부" 입니다. 풀이 1 2 3 4 5 6 7 8 9 10 11 alpha = 'abcdefghijklmnopqrstuvwxyz' T = int(input()) for tc in range(T): s = input() cout = 0 for i in range(len(s)): if alpha[i] == s[i]: cout += 1 else: break print('#%d %d' %((tc+1), cout)) cs 핵심: 알파벳을 사전에 나열한 후 비교합니다. 1. 알파벳을 사전에 나열합니다. 2. 테스트 개수 T를 입력 받습니다. 3. for 문을 사용해서 테스트 개수만큼 반복합니다. 4. 비교할 문자열을 입력.. 2023. 4. 16.
[SWEA] SWEA 15941번: 평행사변형 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 15941번 문제 풀이입니다. 문제 이름은 "평행사변형" 입니다. 풀이 1 2 3 4 T = int(input()) for tc in range(T): N = int(input()) print('#%d %d' %((tc+1), int(N**2))) cs 핵심: 모든 변의 길이가 N인 평행사변형의 넓이는 항상 같습니다. 1. 테스트 개수 T를 입력 받습니다. 2. for 문을 사용해서 테스트 개수만큼 반복합니다. 3. 숫자 N을 입력 받습니다. 4. 출력 양식에 맞게 테스트 개수와 평행사변형의 넓이를 출력합니다. 2023. 4. 16.
[SWEA] SWEA 1946번: 간단한 압축 풀기 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 1946번 문제 풀이입니다. 문제 이름은 "간단한 압축 풀기" 입니다. 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 T = int(input()) for tc in range(T): N = int(input()) result = [] cout = 1 for i in range(N): s, num = input().split() num = int(num) for j in range(num): result.append(s) print('#%d' %(tc+1)) for i in result: if cout % 10 != 0: print(i, end='') else: print(i) cout +=1 print() cs 핵심: 빈 리스.. 2023. 4. 16.
[SWEA] SWEA 1966번: 숫자를 정렬하자 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 1966번 문제 풀이입니다. 문제 이름은 "숫자를 정렬하자" 입니다. 풀이 1 2 3 4 5 6 7 8 9 T = int(input()) for tc in range(T): N = int(input()) l = list(map(int, input().split())) l.sort() print('#%d' %(tc+1), end=' ') for i in l: print(i, end=' ') print() cs 핵심: 파이썬의 sort() 함수를 사용합니다. 1. 테스트 개수 T를 입력 받습니다. 2. for 문을 사용해서 테스트 개수만큼 반복합니다. 3. 숫자 N을 입력 받습니다. 4. 리스트를 선언해서 수들을 입력 받습니다. 5. 파이썬의 내장함수인 s.. 2023. 4. 15.
[SWEA] SWEA 1979번: 어디에 단어가 들어갈 수 있을까 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 1979번 문제 풀이입니다. 문제 이름은 "어디에 단어가 들어갈 수 있을까" 입니다. 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 T = int(input()) for tc in range(T): N, K =map(int, input().split()) l = [list(map(int, input().split())) for i in range(N)] result = 0 for col in range(N): cout = 0 for row in range(N): if l[col][row] == 1: cout += 1 if (l[col][row] == 0) or (row == N-1): if cout == K.. 2023. 4. 15.
[SWEA] SWEA 1984번: 중간 평균값 구하기 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 1984번 문제 풀이입니다. 문제 이름은 "중간 평균값 구하기" 입니다. 풀이 1 2 3 4 5 6 7 8 9 10 11 T = int(input()) for i in range(T): l = list(map(int, input().split())) l_max = max(l) l_min = min(l) l.remove(l_max) l.remove(l_min) l_s = 0 for j in l: l_s += j print('#%d %d' %((i+1), round(l_s/len(l)))) cs 핵심: 리스트의 max(), min(), remove() 함수를 사용합니다. 1. 테스트 개수 T를 입력 받습니다. 2. for 문을 사용해서 테스트 개수만큼 반복합니다... 2023. 4. 14.
[SWEA] SWEA 1986번: 지그재그 숫자 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 1986번 문제 풀이입니다. 문제 이름은 "지그재그 숫자" 입니다. 풀이 1 2 3 4 5 6 7 8 9 10 T = int(input()) for i in range(T): N = int(input()) s = 0 for j in range(1, N+1): if j % 2 == 1: s += j else: s -= j print('#%d %d' %((i+1), s)) cs 핵심: 2로 나눈 나머지가 1일 경우 홀수, 0일 경우 짝수로 판별하여 계산합니다. 1. 테스트 개수 T를 입력 받습니다. 2. for 문을 사용해서 테스트 개수만큼 반복합니다. 3. 숫자 N을 입력 받습니다. 4. 결과값을 출력할 변수를 선언합니다. 5. for 문을 통해 1부터 .. 2023. 4. 14.
[SWEA] SWEA 1989번: 초심자의 회문 검사 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 1989번 문제 풀이입니다. 문제 이름은 "초심자의 회문 검사" 입니다. 풀이 1 2 3 4 5 6 7 8 T = int(input()) for i in range(T): s = input() s_r = s[::-1] if s == s_r: print('#%d 1' %(i+1)) else: print('#%d 2' %(i+1)) cs 핵심: 문자열을 거꾸로 뒤집어서 판변합니다. 1. 테스트 개수 T를 입력 받습니다. 2. for 문을 사용해서 테스트 개수만큼 반복합니다. 3. 회문을 판별할 문자열을 입력 받습니다. 4. 문자열을 슬라이싱 기능을 사용해서 뒤집습니다. 5~6. 문자열을 비교했을 경우 회문이면 테스트 번호와 1을 출력합니다. 7~8. 회문.. 2023. 4. 14.
[SWEA] SWEA 2007번: 패턴 마디의 길이 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 2007번 문제 풀이입니다. 문제 이름은 "패턴 마디의 길이" 입니다. 풀이 1 2 3 4 5 6 7 8 9 10 11 T = int(input()) for i in range(T): s = input() p_1 = [] p_2 = [] for j in range(10): p_1 = s[:j] p_2 = s[j:j*2] if (j != 0) and (p_1 == p_2): print('#%d %d' %((i+1), len(p_1))) break cs 핵심: 슬라이싱 기능을 사용해서 처음부터 j 이전의 패턴과 j부터 j*2의 패턴이 같은지 판별합니다. 1. 테스트 개수 T를 입력 받습니다. 2. for 문을 사용해서 테스트 개수만큼 반복합니다. 3. 패턴을 판.. 2023. 4. 13.
[SWEA] SWEA 1926번: 간단한 369게임 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 1926번 문제 풀이입니다. 문제 이름은 "간단한 369게임" 입니다. 풀이 1 2 3 4 5 6 7 8 9 10 11 N = int(input()) for i in range(1, N+1): l = str(i) cout = 0 for j in l: if j == '3' or j == '6' or j == '9': cout += 1 if cout > 0: print('-'*cout, end=' ') else: print(i, end=' ') cs 핵심: 문자열로 변환하여 3, 6, 9 가 있으면 카운트를 해줍니다. 36일 때는 문자열로 탐색하면 카운트가 2이므로 -를 2번 출력합니다. 1. 숫자 N을 입력 받습니다. 2. for 문을 통해 1부터 N까지 순서대로 .. 2023. 4. 13.
[SWEA] SWEA 2043번: 서랍의 비밀 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 2043번 문제 풀이입니다. 문제 이름은 "서랍의 비밀번호" 입니다. 풀이 1 2 3 4 5 P, K = map(int, input().split()) if P >= K: print(P-K+1) else: print(K-P+1+999) cs 핵심: 조건문을 통해 K보다 P가 클 경우를 처리합니다. 1. K와 P를 입력 받습니다. 2~3. P가 K보다 클 경우 출력합니다. 4~5. K가 P보다 클 경우 0~999까지 순환하므로 999를 더해줍니다. 2023. 4. 13.
[SWEA] SWEA 2029번: 몫과 나머지 출력하기 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 2029번 문제 풀이입니다. 문제 이름은 "몫과 나머지 출력하기" 입니다. 풀이 1 2 3 4 T = int(input()) for i in range(T): a, b = map(int, input().split()) print('#%d %d %d' %((i+1), a//b, a%b)) cs 핵심: 몫과 나머지를 출력하는 연산자를 사용합니다. 1. 테스트 개수 T를 입력 받습니다. 2. for문으로 테스트 수 T만큼 반복합니다. 3. a, b를 공백 기준으로 입력 받습니다. 4. 출력 양식에 맞게 결과값을 출력합니다. 2023. 4. 12.
[SWEA] SWEA 2027번: 대각선 출력하기 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 2027번 문제 풀이입니다. 문제 이름은 "대각선 출력하기" 입니다. 풀이 1 2 3 4 5 6 7 for i in range(5): for j in range(5): if i == j: print('#', end='') else: print('+', end='') print() cs 핵심: 이중 for문을 통해 i와 j가 같은 경우 '#'을 출력합니다. 1~2. 이중 for 문을 통해 탐색합니다. 3~4. i와 j가 같은 경우는 대각선이므로 #을 출력합니다. 5~6. 대각선이 아닐 경우는 '+'를 출력합니다. 4. for문으로 j의 순회가 끝나면 출력 양식에 맞게 줄바꿈을 해줍니다. 2023. 4. 12.
[SWEA] SWEA 2025번: N줄덧셈 파이썬 풀이 - 알고리즘 코딩 문제 해설 python 안녕하세요. 이번 포스팅은 SWEA의 2025번 문제 풀이입니다. 문제 이름은 "N줄 덧셈" 입니다. 풀이 1 2 3 4 5 N = int(input()) s = 0 for i in range(1, N+1): s += i print(s) cs 핵심: for문을 사용해서 1부터 N까지의 합을 구합니다. 1. 정수 N을 입력 받습니다. 2. 합계를 저장할 변수를 선언합니다. 3~4. for문을 사용해서 1부터 N까지의 합을 순서대로 더합니다. 5. 양식에 맞게 결과값을 출력합니다. 2023. 4. 12.
반응형