• [이코테] 두 배열의 원소 교체 (파이썬)

    [이코테] 두 배열의 원소 교체 (파이썬)

    정답 n, k = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) a.sort() b.sort(reverse=True) # 내림차순 for i in range(k): if a[i] < b[i]: a[i], b[i] = b[i], a[i] else: break print(sum(a)) 배운 점: 이 문제를 통해 파이썬 문법과 sort()에 대해 알게 되었다. sort()는 자동으로 오름차순으로 정리해주며 reverse=True를 입력하면 내림차순으로도 정렬이 가능하다. 또한 교체가 너무나도 간결하게 작성이 가능하다! 만약 a과 b값을 서로 교환하고 싶다면 이렇게 한 줄로 작성하면 ..

  • [이코테] 정렬 알고리즘 코드 정리 (파이썬)

    array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] # 선택 정렬 for i in range(len(array)): min_index = i # 가장 작은 원소의 인덱스 for j in range(i+1, len(array)): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_index], array[i] # 스와프 print("선택 정렬 = ", array) # 삽입 정렬 for i in range(1, len(array)): for j in range(i, 0, -1): if array[j] < array[j-1]: # 한 칸씩 왼쪽으로 이동 array[j], array[j-1] ..

  • [백준] 2667번 - 단지번호붙이기 (파이썬)

    [백준] 2667번 - 단지번호붙이기 (파이썬)

    https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 문제 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고..

  • [백준] 1926번 - 그림 (파이썬)

    https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 문제 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로로 연결된 것은 연결이 된 것이고 대각선으로 연결이 된 것은 떨어진 그림이다. 그림의 넓이란 그림에 포함된 1의 개수이다. 입력 첫째 줄에 도화지의 세로 크기 n(1 ≤ n ≤ 500)과 가로 크기 m(1 ..

  • [이코테]  구현 - 상하좌우 (파이썬)

    [이코테] 구현 - 상하좌우 (파이썬)

    내 풀이 size = int(input()) direction = list(input().split()) result = [1, 1] for i in range(len(direction)): if ((direction[i] == 'L' and result[1] == 1) or (direction[i] == 'U' and result[0] == 1) or (direction[i] == 'R' and result[1] == size) or (direction[i] == 'D' and result[0] == size)): continue elif (direction[i] == 'L'): result[1] = result[1] - 1 elif (direction[i] == 'U'): result[0] = res..

  • [이코테] 그리디 알고리즘 - 곱하기 혹은 더하기 (파이썬)

    [이코테] 그리디 알고리즘 - 곱하기 혹은 더하기 (파이썬)

    내 풀이 n = list(map(int, input())) sum = 0 for i in range(len(n) - 1): if (n[i] * n[i + 1] >= n[i] + n[i + 1]): n[i + 1] = n[i] * n[i + 1] else: n[i + 1] = n[i] + n[i + 1] sum = n[i + 1] print(sum) 정답 배운 점: 결과 값을 단순히 0으로 초기화 시켰지만 정답을 확인해보니 result를 int(data[0])로 초기화하여 첫 번째 숫자를 기본값으로 설정한 것으로 보고 초기값 설정 방법을 깨달았습니다. 그리고 내가 쓴 for문 코드는 직관적으로 파악하기 힘들지만, 정답 코드를 보면서 훨씬 직관적이고 간결하게 쓰는 방법도 알게 되었다.

  • [이코테] 그리디 알고리즘 - 1이 될 때까지 (파이썬)

    [이코테] 그리디 알고리즘 - 1이 될 때까지 (파이썬)

    내 풀이 n, k = map(int, input().split()) count = 0 while (n != 1): if (n % k == 0): n = n / k count += 1 else: n -= 1 count += 1 continue print(count) 정답 느낀점 오답노트 : N이 커질수록 시간 초과가 발생할 수 있기 때문에 일일히 1을 빼는건 비효율적이라는 것을 알게 되었다. N이 100억 이상의 큰 수가 되는 경우에도 효율적으로 실행하기 위해서 N이 K의 배수가 되도록 한번에 빼는 방식을 사용해야 한다. 정답 맞춰서 푸는 것도 중요하지만, 효율을 생각해서 적절한 알고리즘을 사용하고 설계하는 사고를 기르는게 더 중요하다고 느끼게 되었다.

  • [Intro to UNIX] CH2. 리눅스 사용하기

    [Intro to UNIX] CH2. 리눅스 사용하기

    North Dakota State University CSCI - Introduction to UNIX 사용자 계정 설정 인증 Authentication 모든 리눅스 시스템은 인증 액세스가 필요함. (보안성 때문에) ⇒ 모든 사용자들은 유저네임과 비밀반호로 접속해야 함. 최소 2개의 계정이 생성되어야 함 관리자 Administrator (root 계정) - 시스템을 전체적인 관리 및 접근 일반 사용자 계정 기본 리눅스 사용 Basic Linux Usage 쉘, 터미널, 커널 Shells Terminals Kernel 커널 → 운영체제의 핵심 부품, 컴퓨터 자원을 관리하는 역할, 리눅스에서는 vmlinuz이라는 파일이 커널임 터미널 → 사용자들에게 로컬 혹은 네트워크로 접속할 수 있도록 권한 주는 채널 쉘..

  • 2023년 2회 정처기 필기 합격 후기

    2023년 2회 정처기 필기 합격 후기

    이번 학기 휴학하면서 계획 세웠던 목표 중 하나가 바로 정처기 따는것! 8월에는 교환학교로 출국하기 때문에 나는 만약 이번에 떨어졌으면 3회 필기를 따놓고 내년에 졸프 병행하면서 실기를 해야 되는 상황이 발생하게 되는데,, 다행히 이번에 필기 합격해서 7월에 실기를 볼 예정이다. (제발,,실기도 이번에 꼭 붙었으면,,내년에 또 하기 싫다고ㅎㅎ,,) 시험 당일 + 최종 결과 (점수) 5월 22일 월요일 아침 8시40분 시험을 잡았다. 시험장 들어가면 모니터에 본인 사진하고 응시 과목을 띄워놓고 있어서 보고 자리에 착석하면 된다. 문제는 1시간 이내에 다 풀었던 것 같고 검토까지 해서 1시간 반 이내에 다 풀고 나왔다. CBT 시험이라서 시험을 종료하면 바로 점수가 뜨는데 1과목 : 80 2과목 : 70 3..

  • [백준] 14681번 - 사분면 고르기 (파이썬)

    [백준] 14681번 - 사분면 고르기 (파이썬)

    https://www.acmicpc.net/problem/14681 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net 문제 흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제n사분면"이라는 뜻이다. 예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다. 점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다. 입력 첫 줄..

  • [백준] 2753번 - 윤년 (파이썬)

    https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 문제 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다. 입력 ..

  • [백준] 9498번 - 시험 성적 (파이썬)

    https://www.acmicpc.net/problem/9498 9498번: 시험 성적 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 시험 성적을 출력한다. 코드 score = int(input()) if score >= 90 : print("A") elif score >=..

  • [백준] 1330번 - 두 수 비교하기 (파이썬)

    https://www.acmicpc.net/problem/1330 1330번: 두 수 비교하기 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. www.acmicpc.net 문제 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어져 있다. 출력 첫째 줄에 다음 세 가지 중 하나를 출력한다. A가 B보다 큰 경우에는 '>'를 출력한다. A가 B보다 작은 경우에는 '

  • [백준] 10430번 - 나머지

    https://www.acmicpc.net/problem/10430 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 문제 (A+B)%C는 ((A%C) + (B%C))%C 와 같을까? (A×B)%C는 ((A%C) × (B%C))%C 와 같을까? 세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) 출력 첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다. 코드 a,b,c = map(int, inpu..

  • [백준] 3003번 - 킹, 퀸, 룩, 비숍, 나이트, 폰 (파이썬)

    https://www.acmicpc.net/problem/3003 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net 문제 동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다. 체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다. 체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다. 동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른..

  • [백준] 18108번 - 1998년생인 내가 태국에서는 2541년생?! (파이썬)

    https://www.acmicpc.net/problem/18108 18108번: 1998년생인 내가 태국에서는 2541년생?! ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국 www.acmicpc.net 문제 ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국은 불멸기원(佛滅紀元), 즉 석가모니가 열반한 해를 기준으로 연도를 세는 불기를 사용한다. 반면, 우리나라는 서기 연도를 ..

  • [백준] 10926번 - ??! (파이썬)

    https://www.acmicpc.net/problem/10926 10926번: ??! 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때 www.acmicpc.net 문제 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때, 놀람을 표현하는 프로그램을 작성하시오. 입력 첫째 줄에 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어진다. 아이디는 알파벳 소문자로만 이루어져 있으며, 길이는 50자를 넘지 않는다. ..

  • [파이썬] 연산자 '/'와 '//'의 차이점 알아보기

    float int 차이??? (수정 예정)

  • [백준] 10869번 - 사칙연산 (파이썬)

    https://www.acmicpc.net/problem/10869 10869번: 사칙연산 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 입력 두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000) 출력 첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A*B, 넷째 줄에 A/B, 다섯째 줄에 A%B를 출력한다. 코드 a,b = map(int, input().split()) print(a+b) print(a-b) print(a*b) print(a/..