memostack
article thumbnail
CodeUp 1011번 - 문자 1개 입력받아 그대로 출력하기 (Java 풀이)
Algorithm/CodeUp 2020. 10. 11. 19:41

문제 원문: codeup.kr/problem.php?id=1011 [기초-입출력] 문자 1개 입력받아 그대로 출력하기(설명) C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용 �� codeup.kr 문자형(char)으로 변수를 하나 선언하고, 변수에 문자를 저장한 후 변수에 저장되어 있는 문자를 그대로 출력해보자. 참고 char x; scanf("%c", &x); printf("%c", x); 와 같은 방법으로 가능하다. 입력 문자 1개가 입력된다. (단, 입력되는 문자는 알파벳 대, 소문자 및 숫자를 비롯한 아스키코드로 표현할 수 있는 문자들만 입력된다.) ..

article thumbnail
CodeUp 1001번 - 출력하기01 (Java 풀이)
Algorithm/CodeUp 2020. 10. 11. 11:59

문제 C/C++언어에서 가장 기본적인 명령이 출력문이다. printf()를 이용해 다음 단어를 출력하시오. Hello 참고 C/C++ IDE 프로그램을 설치한 후, 아래와 같은 소스 코드를 작성하고 "컴파일-실행"을 수행시키면, 지정한 "문장"이 출력된다. #include int main() { printf("문장"); return 0; } 입력 없음 출력 Hello Java 풀이 단순히 콘솔로 'Hello'를 출력하는 문제 public class Main { public static void main(String[] args) { System.out.println("Hello"); } } 채점결과 위 풀이는 직접 풀어보고 채점까지 한 뒤에 확인하여 올린 코드입니다. 궁금한점이나 더 좋은 방법이 있다면 ..

CodeUp Java로 기초 100제 풀어보기
Algorithm/CodeUp 2020. 10. 11. 11:52

문제의 저작권은 'CodeUp'에게 있습니다. 저작권 문제가 있는 경우, 바로 삭제하겠습니다. codeup.kr/index.php CodeUp ☆ 파이썬 다운로드 : 파이썬3 ☆ 무료 C언어 IDE : Code::blocks DEV C++ ☆ 추천 온라인 IDE : C++11 Python3 Java ☆ 채점 가능 언어 : C, C++, JAVA, Python 3.5 ★ C++로 제출시 void main()을 사용하면 컴�� codeup.kr Java 기초 100제 2020/10/11 - [Algorithm/CodeUp] - CodeUp 1001번 - 출력하기01 (Java 풀이) 2020/10/11 - [Algorithm/CodeUp] - CodeUp 1002번 - 출력하기02 (Java 풀이) 2020..

article thumbnail
프로그래머스 - 가운데 글자 가져오기 (Java)
Algorithm 2020. 8. 29. 17:36

문제의 저작권은 프로그래머스(https://www.acmicpc.net/)에게 있습니다. 문제 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 예제 // Input abcde // Output c // Input qwer // Output we Coding - Java substring()을 이용하여, 가운데에 위치한 문자를 가져온다. public static String solution(String s) { String answer = ""; final int length = s.length(); if (0 == length % 2) { // 짝수 final in..

article thumbnail
백준 1330번 - 두 수 비교하기 (Java)
Algorithm/Beakjoon 2020. 8. 28. 19:32

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. 예제 // Input 1 2 // Output // Input 5 5 // Output == Coding - Java 단순히 if문을 이용하여 두 수를 비교하여 알맞은 부등호를 출력하면 된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void..

article thumbnail
백준 1000번 - A + B (Java)
Algorithm/Beakjoon 2020. 8. 28. 19:20

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 예제 // Input 1 2 // Output 3 Coding - Java 콘솔로 입력을 받을때는 Scanner 또는 BufferedReader, System.in.read()가 있다. 본 글에서는 BufferedReader 와 System.in.read()를 이용하여 문제를 풀었다. 방법 1. BufferedReader 이용 import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[]..

article thumbnail
백준 Ex.10171번 - 고양이 (JAVA)
Algorithm/Beakjoon 2020. 8. 26. 18:08

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 아래 예제와 같이 고양이를 출력하시오. 예제 // Input 없음 // Output \ /\ ) ( ') ( / ) \(__)| Coding - Java 쉬운 문제 같지만, 성급하게 풀면 이스케이프 문자를 신경쓰지 못하고 틀릴 확률이 높다. (정답률도 36.614%...) 백슬래쉬(\)를 주의해서 입력해야 함. public class Main { public static void main(String[] args) { System.out.println("\\ /\\\n" + " ) ( ')\n" + "( / )\n" + " \\(__)|"); } } 채점 결과 Reference https://www.acmic..

article thumbnail
백준 Ex.10718번 - We love kriii (JAVA)
Algorithm/Beakjoon 2020. 8. 26. 17:54

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올 해에도 파주 World Finals 준비 캠프에 참여했다. 대회를 뜰 줄 모르는 지박령 kriii를 위해서 격려의 문구를 출력해주자. 예제 // Input 없음 // Output 강한친구 대한육군 강한친구 대한육군 Coding - Java 간단한 문제이고, 방법 2가지로 풀어볼 수 있다. 방법 1. System.out.println()를 2번 호출 방법 2. 개행문자(\n)를 이용 방법 3. 람다식을 이용한 방법 (비추천, 비효율적이기 때문에) // 방법 ..

article thumbnail
백준 Ex.2557번 - Hello World (JAVA)
Algorithm/Beakjoon 2020. 8. 26. 17:48

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 Hello World!를 출력하시오. 예제 // Input // Output Hello World! Coding - Java 프로그래밍을 처음 배우면 가장 먼저 만들어보는 프로그램으로, 단순히 표준 출력을 이용하여 Hello World!를 찍어주면 된다. public class Main { public static void main(String[] args) { System.out.println("Hello World!"); } } 채점 결과 Reference https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acm..

article thumbnail
백준 5543번 - 상근날드 (with Python3)
Algorithm/Beakjoon 2020. 6. 22. 20:42

본 문제는 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다. 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다. 햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다. 햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오. 예제 # 입력 800 700 900 198 330 # 출력 848 # 입력 1999 1999 100 189 100 # 출력 150 Coding - Python3 버거 종류(첫번째, 두번째, 세번째 줄)에서 가장 작은 값을 고른다. 음료..

article thumbnail
KAKAO 2020 공채 코딩 테스트 - 문자열 압축 (with Python3)
Algorithm 2020. 4. 4. 16:54

본 문제는 KAKAO 2020 블라인드 코딩 테스트 문제 중에 `문자열 압축` 문제이다. 문제 문제를 보려면 아래 `더보기`를 누르면 된다. 더보기 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 aabbaccc의 경우 2a2ba3c(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, abcab..

article thumbnail
백준 15650번 - N과 M(2) - 순열 (with Python3)
Algorithm/Beakjoon 2020. 4. 3. 14:41

본 문제는 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. 예제 # 입력 4 2 # 출력 1 2 1 3 1 4 2 3 2 4 3 4 # 입력 4 4 # 출력 1 2 3 4 Coding - Python3 기본 순열 문제에서 코드 몇개만 수정하면 된다. 참고. 기본 순열 문제 2020/04/03 - [Algorithm/Beakjoon] - 백준 Ex.15649번 - N과 M(1) 순열 문제 (with Python3) 백준 Ex.15649번 - N과 M(1) 순열 문제 (with ..

article thumbnail
백준 15649번 - N과 M(1) 순열 문제 (with Python3)
Algorithm/Beakjoon 2020. 4. 3. 14:31

본 문제는 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 예제 # 입력 3 1 # 출력 1 2 3 # 입력 4 2 # 출력 1 2 1 3 1 4 2 1 2 3 2 4 3 1 3 2 3 4 4 1 4 2 4 3 Coding - Python3 대표적인 순열 문제로 푸는 방식만 익히면 쉽게 문제를 풀 수 있다. for 문을 이용하는 방식과 재귀함수를 이용하는 방식이 있는데, 재귀 함수로 푸는것이 이해하기 쉽다. 아래 코드는 stack 과 재귀 함수를 이용하여 문제를 풀었다. # -*- coding: utf-8 -..

article thumbnail
Programmers - 가장 큰 수 (Python3)
Algorithm 2020. 4. 2. 18:05

본 문제의 저작권은 프로그래머스(https://programmers.co.kr/)에 있습니다. 문제 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. Coding - Python3 처음에는 뒤에 0을 붙여서 모두 같은 자릿수를 만든다음 크기를 비교하면 된다고 생각했다. 하지만, 반례가 존재한다. [12..

article thumbnail
Programmers - K번째수 (Python3)
Algorithm 2020. 4. 2. 17:49

본 문제의 저작권은 프로그래머스(https://programmers.co.kr/)에 있습니다. 문제 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solu..

article thumbnail
미로 찾기 알고리즘 BFS, DFS (with Python3)
Algorithm 2020. 4. 1. 21:07

DFS 와 BFS 에 대한 글은 아래 글을 참고한다. 2020/03/29 - [Algorithm] - 그래프 BFS, DFS 알고리즘 (with Python3) 그래프 BFS, DFS 알고리즘 (with Python3) 그래프 탐색 알고리즘에는 대표적으로 BFS 와 DFS 가 있다. 본 글에서는 아래 그래프를 가지고, BFS 와 DFS 의 탐색 알고리즘을 살펴본다. BFS 너비 우선 탐색을 BFS 라 부르고, Breadth Frist Search 의 약자이.. memostack.tistory.com 미로찾기 알고리즘 DFS, BFS 알고리즘을 이용해서 미로찾기 알고리즘을 구현할 수 있다. 문제 풀이의 핵심은 2가지이다. 미로 찾기 문제를 풀때는 미로를 모형화하여 그래프로 나타내는 것. 자료구조(Stack..

article thumbnail
탐색 알고리즘 BFS 응용하기 (친밀도 구하기)
Algorithm 2020. 4. 1. 20:05

BFS 에 대한 개념은 아래 글을 참고한다. 2020/03/29 - [Algorithm] - 그래프 BFS, DFS 알고리즘 (with Python3) 탐색 알고리즘 BFS 응용 모든 노드를 탐색(방문)하면서 노드(Node)간의 비용(Cost)을 같이 구한다. 문제 사람들간의 친밀도를 구한다. 사람: 노드(Node) 친밀도: 비용(Cost) 예를들어, 사람과 사람 사이의 친밀도를 1 이라 한다. A ~ M 까지 사람이 있을때, A를 기준으로 각각의 사람들과의 친밀도를 구한다. A 와 B는 친밀도가 1이다. B 와 D는 친밀도가 1이다. A와 D는 친밀도가 2이다. ... Coding - Python3 본 글에서는 파이썬을 이용하여 문제를 풀이한다. BFS 알고리즘으로 노드를 탐색하는것은 동일하다. 단, ..

article thumbnail
그래프 BFS, DFS 알고리즘 (with Python3)
Algorithm 2020. 3. 29. 12:29

그래프 탐색 알고리즘에는 대표적으로 BFS 와 DFS 가 있다. 본 글에서는 아래 그래프를 가지고, BFS 와 DFS 의 탐색 알고리즘을 살펴본다. BFS 너비 우선 탐색을 BFS라 부르고, Breadth Frist Search 의 약자이다. 해당 노드와 같은 레벨(Level)의 노드를 먼저 탐색을 하기 때문에 붙여진 이름이다. 위 그래프를 예로 탐색 순서를 나열하면, 아래와 같은 순서로 탐색을 하게된다. A - B - C - D - E - F - G - H - I - J - K - L - M 코드 아래 코드는 unittest 기반으로 작성했다. 알고리즘은 bfs() 메소드를 참고한다. # -*- coding: utf-8 -*- import unittest def bfs(graph, start): """..

article thumbnail
회문, 팰린드롬(Palindrome) 알고리즘 (with Python3)
Algorithm 2020. 3. 28. 23:21

Palindrome 팰린드롬은 한국말로 회문이라고 한다. 회문은 거꾸로 읽어도 같은 문자열이 되는 문자열을 말한다. 예를들어서, "mom", "bob", "12321" 과 같은 문자열을 말한다. 팰린드롬을 확인하는 방법은 여러가지가 있겠지만, 큐와 스택의 특성을 이용하면 쉽게 찾을 수 있다. 큐는 FIFO 특징을 가지고 있고, 스택은 LIFO 특징을 가지고 있다. 큐와 스택에 대한 개념은 아래글을 참고한다. 2020/03/28 - [Algorithm] - 큐(Queue) 와 스택(Stack) 자료구조 로직(Logic) 큐와 스택에 각각 문자열을 담는다. 큐에서 꺼낸값과 스택에서 꺼낸값이 모두 같다면 회문이다. 예를들어서, 12321 이라는 회문이 있을때, 큐와 스택에 각각 담는다. => queue: 12..

article thumbnail
이진 탐색 (Binary Search) 알고리즘 with Python3
Algorithm 2020. 3. 25. 22:46

이진 탐색 알고리즘 이진 탐색(Binary Search) 알고리즘은 순차 탐색 알고리즘보다 더 빠르게 탐색할 수 있다. 빠르게 탐색할 수 있는 이유는 둘로 분할(이분)하여 탐색하기 때문이다. 예를들어, 1000페이지까지 있는 책이 있을때 630페이지를 찾으려고 한다. 우리는 대충 책을 펼쳐서 페이지를 확인한다. 그때 500페이지라면 630 페이지는 500페이지보다 뒤에 있으므로 앞 페이지를 살펴볼 필요가 없어진다. 하지만, 이진 탐색을 하려면 위 예제와 같이 탐색할 데이터 그룹이 정렬이 되어 있어야한다는 조건이 있다. 코딩 반으로 나누어서 중간 값과 목표값(target)을 비교한다. 같다: 인덱스를 반환한다. 목표값이 중간값보다 작다: 중간값의 인덱스보다 작은 왼쪽에서 다시 찾는다. (오른쪽은 버려도된다..