분류 전체보기(472)
-
백준 10942 팰린드롬?
https://www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 팰린드롬이란 예전 광고에서 나온 앞뒤가 똑같은 전화번호를 생각하면된다. 즉 앞으로 읽어도 뒤로 읽어도 똑같은 것을 찾으면된다. 재귀로 하나하나 비교하면서 start, end 값이 같으면 1을 반환 다르면 0을 반환한다고 치면 가볍게 문제를 해결할 수 있다고 생각하지만 이 문제는 0.5초가 제한 시간이기 때문에 시간 초과가 발생한다. 그래서 위 문제를 해결하기 위해서는 반복을 하는 동안 중간중간에 기록을 하는 것이다. [1][2]는 1번..
2020.03.27 -
백준 1520 내리막길
https://www.acmicpc.net/problem/1520 1520번: 내리막 길 첫째 줄에는 지도의 세로의 크기 M과 가로의 크기 N이 빈칸을 사이에 두고 주어진다. 이어 다음 M개 줄에 걸쳐 한 줄에 N개씩 위에서부터 차례로 각 지점의 높이가 빈 칸을 사이에 두고 주어진다. M과 N은 각각 500이하의 자연수이고, 각 지점의 높이는 10000이하의 자연수이다. www.acmicpc.net 한 사람이 0,0에서 오른쪽 제일 밑 끝점으로 이동하는 방법의 개수를 구하는 것이다. 특이하게 이동하는 사람은 현재의 위치에서 더 가중치가 낮은 곳으로만 이동할 수 있다. 문제를 처음보면 어 그래프 방법론을 사용해서 풀면되는거 아닌가 하겠지만 여기서 map의 크기가 500임으로 500 * 500 * 4라는 계..
2020.03.27 -
golang part4(Method, Pointer and Method, Interface, Stringers, Error, Readers)
part4 Method Go는 class를 갖고 있지 않습니다. 그러나 타입과 위에 method를 정의할 수 있습니다. method는 특별한 receiver arguments를 갖고 있는 함수입니다. receiver는 자신의 arguments를 func와 method keyword 사이에 작성된다. package main import ( "fmt" "math" ) type Vertex struct { X, Y float64 } func (v Vertex) Abs() float64 { return math.Sqrt(v.X*v.X + v.Y*v.Y) } func main() { v := Vertex{3, 4} fmt.Println(v.Abs()) } 일반적인 함수 선언, 호출과의 차이점은 v.Abs()를 사..
2020.03.24 -
go 문법 part3(pointer, struct, array, slice, range, map)
part3 Pointer Go는 C언어에 있는 Pointer를 사용할 수 있다. 이러한 표기법으로 사용할 수 있다. *T T는 value이다. 선언만 한 변수에 들어있는 값은 nil이다. var p *int &연산자를 사용하면 위와 같이 변수를 만들지 않고도 pointer 변수를 선언할 수 있다. i:=42 p:=&i 연산자 표시는 포인터가 가리키는 값을 가져온다. fmt.Println(*p) *p = 21 package main import "fmt" func main() { i, j := 42, 2701 p := &i fmt.Println(*p) *p = 21 fmt.Println(i) p = &j *p = *p / 37 fmt.Println(j) } structs struct는 필드들의 모음입니다...
2020.03.20 -
go 문법 part2(반복문, 조건문, defer)
part2 For For loop문은 세개의 컴포넌트가 ; 세미콜론으로 분배되어있다. 초기화: 처음 반복하기 전에 실행된다. 조건문: 모든 반복을 하기전 조건이 맞는지 확인하고 실행한다. 말미문: 모든 반복의 끝에 실행된다. 초기화해줄 때 := 짧은 변수 선언문을 자주 사용한다. 그리고 그 변수의 scope는 반복문 안에서만 유요하다. 조건문에서의 결과가 false가 되면 멈춘다. package main import "fmt" func main() { sum := 0 for i := 0; i < 10; i++ { sum += i } fmt.Println(sum) } 그리고 초기화와 말미문은 option으로 선택할 수 있다. package main import "fmt" func main() { sum :..
2020.03.19 -
go 문법 part1(함수, 변수, 패키지)
go part1 Packages 모든 고 프로그램은 패키지로 구성되어 집니다. 프로그램은 일반적으로 main package에서 실행됩니다. 아래 예제에서는 fmt와 math/rand를 import 하고 있습니다. 페키지 이름은 import path의 마지막 엘리먼트와 같습니다. 예를 들어 아래의 경우에는 rand가 패키지입니다. package main import ( "fmt" "math/rand" ) func main() { fmt.Println("my favorite number is ", rand.Intn(10)) } imports import ( "fmt" "math/rand" ) 이 코드에서는 여러 개의 "패키지"를 괄호로 싸서 import를 나타낼 수 있습니다. 또한 아래와 같이 작성할 수 있..
2020.03.18